0

我正在尝试比较时间,并且我想使用手机当前时间来进行数学运算。现在我确定如果我能让这个字符串工作,那么我的应用程序将 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

我怎样才能让它显示正确的日期?

4

3 回答 3

11

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

DateTime phonecurrentime = DateTime.Now;

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

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

于 2013-08-30T00:37:01.877 回答
5

您用来创建日期的电话是

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;
于 2013-08-30T00:37:16.490 回答
2

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

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;
于 2013-08-30T00:37:55.210 回答