为什么我的DateTime不正确

本文关键字:不正确 DateTime 我的 为什么 | 更新日期: 2023-09-27 18:29:45

我正在尝试比较时间,我想在数学中使用手机当前时间。现在我确信,如果我能让这个字符串工作,那么我的应用程序将100%完成。

DateTime phonecurrentime =
    new DateTime(DateTime.Today.Day, DateTime.Now.Hour, DateTime.Now.Minute);

唯一的问题是……-

testbox.Text = phonecurrentime.ToString("dd hh:mm");

显示错误的时间:28 12:00-?????当那天真的是30号,时间是01:30

如何使其显示正确的日期?

为什么我的DateTime不正确

为什么在电话当前时间为Now时使用构造函数创建实例。简单使用DateTime.Now

DateTime phonecurrentime = DateTime.Now;
testbox.Text = phonecurrentime.ToString("dd hh:mm"); //30 01:30

您还应该使用AM/PM,因为hh将以00-12小时的格式显示时间。您的Datetime格式应为"dd hh:mm tt"。在这种情况下,字符串将是30 01:30 PM,如果是下半天。

您用来创建日期的调用是

DateTime(int year, int month, int day);

你的代码应该读(如果你不在乎年份、月份)

DateTime phonecurrentime =
    new DateTime(0, 0, DateTime.Today.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Seconds);

如果你真的关心年/月

DateTime phonecurrentime =
    new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Seconds);

或者只是

DateTime phonecurrentime = DateTime.Now;

您使用了错误的构造函数。

DateTime(int year, int month, int day)

构造函数中的三个整数就是上面的签名。你想要更长的版本:

DateTime(int year, int month, int day, int hour, int minute, int second)

像这样:

DateTime phonecurrentime =
new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, 0);

或者简单地说:

DateTime phonecurrenttime = DateTime.Now;