无法获得一天中的小时和分钟

时间:2013-02-01 11:02:15

标签: c# datetime

我正在尝试获取当前时间:

date = "(" + DateTime.Today.Year.ToString() + "-" + 
DateTime.Today.Month.ToString() + "-" + DateTime.Today.Day.ToString() + " " + 
"(" + DateTime.Today.Hour.ToString() + ":" + DateTime.Today.Minute.ToString() 
+")" + ")";

这应该得到一个日期:

(2013-2-1(13:01))

但它给了我:

(2013-2-1(0:0))

我该如何解决这个问题?

9 个答案:

答案 0 :(得分:7)

您正在使用DateTime.Today,其记录为:

  

设置为今天日期的对象,时间组件设置为00:00:00。

是的,如果您找到HourMinute组件,他们为0 ......

如果您想要当前时间,请改用DateTime.Now。请注意,TodayNow都使用系统本地时区 - 您需要确保它确实是您想要使用的。 (对于本地客户端应用程序来说可能没问题,但对于Web应用程序则不行。)

答案 1 :(得分:5)

使用DateTime对象的ToString()方法代替您目前正在使用的所有连接...

string date = DateTime.Now.ToString("(yyyy-M-d (hh:mm))");

此外,正如其他许多人所指出的,请注意使用DateTime.Now代替DateTime.Today

答案 2 :(得分:2)

使用DateTime.Now代替DateTime.Today

DateTime.Today的时间部分设置为00:00:00
DateTime.Now获取本地计算机的当前日期和时间

答案 3 :(得分:2)

你有DateTime.Today截断时间元素。

使用DateTime.Now代替,它会为您提供完整的日期和时间。

答案 4 :(得分:2)

使用DateTime.Now代替DateTime.TodayDateTime.Today不包括时间,仅包括日期。另见:Difference between System.DateTime.Now and System.DateTime.Today

答案 5 :(得分:2)

如果是网络应用程序,请使用NodaTime。使用DateTime.Now表示当地日期和时间。

所以它应该是:

date = "(" + DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "-" + DateTime.Now.Day.ToString() + " " + "(" + DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString() +")" + ")";

答案 6 :(得分:2)

请根据您的格式尝试使用此更短的代码获取当前日期和时间

var date = DateTime.Now.ToString("(yyyy-MM-dd(HH:mm))");

答案 7 :(得分:2)

使用以下代码而不是连接。它比你所做的连接工作更加优化。

string date = DateTime.Now.ToString("(yyyy-M-d (hh:mm))");

DateTime.Today中也没有时间元素。

答案 8 :(得分:1)

DateTime.Today将返回你2013-2-1 00:00:00 ..它确保时间,但时间戳设置为00:00:00.。这就是为什么你没有得到例外n仍然得到00:00:00。使用DateTime.Now获取当前时间戳。