我有这样的:日期时间格式化返回奇怪的结果
DateTime date = new DateTime();
,然后我打印出来。下面是结果:
本地主机:
date: 1/1/0001 12:00:00 AM
在服务器:
date: 1-1-0001 0:00:00
正确的方法是在本地主机上的一个。如何解决这个问题,为什么会发生这种情况?这是相同的代码。
我有这样的:日期时间格式化返回奇怪的结果
DateTime date = new DateTime();
,然后我打印出来。下面是结果:
本地主机:
date: 1/1/0001 12:00:00 AM
在服务器:
date: 1-1-0001 0:00:00
正确的方法是在本地主机上的一个。如何解决这个问题,为什么会发生这种情况?这是相同的代码。
由于不同地区在不同的机器上设置不同。对你有ahve指定格式字符串explciitly相同的格式日期时间输出:
date.ToString("yyyy-MM-dd HH:mm:ss");
而且约翰特别建议在下面的评论,如果你想有在不同的机器上的相同格式的日期时间的输出,尽管本地区域设置你可以使用InvariantCulture格式提供程序:
date.ToString(CultureInfo.InvariantCulture);
MSDN:
固定区域性是文化不敏感;它与 的英语,但不与任何国家/地区
MSDN相关:
请注意,自定义格式说明符通常最好与不变文化相结合,而标准格式说明符在指定“用户”文化时适用(例如US)。 –
有趣的是,我知道应该使用“InvariantCulture”完成日志记录,所以它是否更好地为'dateTime.ToString()'指定'InvariantCulture'? – sll
这取决于你想要做什么。如果您试图向用户展示某些内容,则应该在其用户区域中使用其中一种标准格式。如果你提供的数据可以被另一台计算机所理解,那么不变式文化就更合适。 –
可以使用不变的文化,以显示你的约会如果你不太关心格式,只要它一直都是一样的。
date.ToString(System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat);
显示日期你那里显示的方式,你可以使用:
date.ToString("M/d/yyyy hh:mm:ss tt");
或使用格式字符串时:由于不同的区域设置上的
string.Format("date: {0:M/d/yyyy hh:mm:ss tt}", date);
不同的机器 – sll
它可能是你的服务器有不同的时间和时区 –
对于“奇怪”阅读“根据记录的行为正确的结果”。 –