我正在尝试获取当前时间:
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))
我该如何解决这个问题?
答案 0 :(得分:7)
您正在使用DateTime.Today
,其记录为:
设置为今天日期的对象,时间组件设置为00:00:00。
是的,如果您找到Hour
和Minute
组件,他们将为0 ......
如果您想要当前时间,请改用DateTime.Now
。请注意,Today
和Now
都使用系统本地时区 - 您需要确保它确实是您想要使用的。 (对于本地客户端应用程序来说可能没问题,但对于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.Today
。 DateTime.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
获取当前时间戳。