4

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

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))

我怎样才能解决这个问题?

4

9 回答 9

9

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

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

所以是的,如果你找到HourMinute组件,它们是 0 ...

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

于 2013-02-01T11:03:52.667 回答
5

代替您目前使用的所有串联,使用 DateTime 对象的 ToString() 方法...

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

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

于 2013-02-01T11:08:23.993 回答
2

如果它是一个 Web 应用程序,请使用NodaTime 。用于DateTime.Now本地日期和时间。

所以应该是:

date = "(" + DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "-" + DateTime.Now.Day.ToString() + " " + "(" + DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString() +")" + ")";
于 2013-02-01T11:06:09.483 回答
2

使用 DateTime.Now 而不是 DateTime.Today

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

于 2013-02-01T11:03:37.463 回答
2

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

改用DateTime.Now它可以为您提供完整的日期和时间。

于 2013-02-01T11:04:01.817 回答
2

请根据您的格式为当前日期和时间尝试这个较短的代码

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

于 2013-02-01T11:11:59.643 回答
2

使用DateTime.Now而不是DateTime.Today. DateTime.Today不包括时间,只包括日期。另请参阅:System.DateTime.Now 和 System.DateTime.Today 之间的区别

于 2013-02-01T11:05:05.300 回答
2

使用以下代码而不是串联。它比您所做的串联工作更优化。

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

DateTime.Today没有时间元素。

于 2013-02-01T11:15:18.550 回答
1

DateTime.Today将返回2013-2-1 00:00:00.. 它确实给出了时间,但时间戳设置为00:00:00.. 这就是为什么你没有得到异常 n 仍然得到的原因00:00:00。用于DateTime.Now当前时间戳。

于 2013-02-01T12:06:22.863 回答