我有这个:
DateTime date = new DateTime();
然后我打印出来。结果如下:
本地主机:
date: 1/1/0001 12:00:00 AM
在服务器上:
date: 1-1-0001 0:00:00
正确的方法是localhost上的方法。如何解决这个问题,为什么会发生这种情况?这是相同的代码。
答案 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);