DateTime格式返回奇怪的结果

时间:2013-02-01 09:48:23

标签: c# datetime

我有这个:

DateTime date = new DateTime();
然后我打印出来。结果如下:

本地主机:

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

在服务器上:

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

正确的方法是localhost上的方法。如何解决这个问题,为什么会发生这种情况?这是相同的代码。

3 个答案:

答案 0 :(得分:5)

由于不同机器上的区域设置不同。要以相同的格式输出日期时间,您需要指定格式字符串explciitly:

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

正如John在下面的评论中所建议的那样,如果你想在不同的机器上以相同的格式输出日期时间,尽管有本地区域设置,你可以使用InvariantCulture格式提供者:

date.ToString(CultureInfo.InvariantCulture);

MSDN

  

不变文化对文化不敏感;它与...有关   英语,但不包括任何国家/地区

MSDN:

答案 1 :(得分:0)

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

date.ToString(System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat);

答案 2 :(得分:0)

要显示您在那里显示日期的日期,您可以使用:

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

或者使用格式字符串时:

string.Format("date: {0:M/d/yyyy hh:mm:ss tt}", date);