0

我有这个:

DateTime date = new DateTime();

然后我打印它。结果如下:

本地主机:

date: 1/1/0001 12:00:00 AM

在服务器上:

date: 1-1-0001 0:00:00

正确的方法是本地主机上的方法。如何解决这个问题,为什么会这样?这是相同的代码。

4

3 回答 3

5

因为不同机器上的区域设置不同。要以相同的格式输出日期时间,您必须明确指定格式字符串:

date.ToString("yyyy-MM-dd HH:mm:ss");

同样正如约翰在下面的评论中推荐的那样,如果您希望在不同的机器上以相同的格式输出日期时间,尽管有本地区域设置,您可以使用InvariantCulture格式提供程序:

date.ToString(CultureInfo.InvariantCulture);

MSDN

不变的文化是文化不敏感的;它与英语相关,但与任何国家/地区无关

MSDN:

于 2013-02-01T09:51:04.170 回答
0

您可以使用不变的文化来显示您的日期,如果您不太关心格式,只要它始终相同即可。

date.ToString(System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat);
于 2013-02-01T09:54:13.183 回答
0

要以您在此处显示的方式显示日期,您可以使用:

date.ToString("M/d/yyyy hh:mm:ss tt");

或者当使用格式字符串时:

string.Format("date: {0:M/d/yyyy hh:mm:ss tt}", date);
于 2013-02-01T09:55:13.297 回答