我有这个:
DateTime date = new DateTime();
然后我打印它。结果如下:
本地主机:
date: 1/1/0001 12:00:00 AM
在服务器上:
date: 1-1-0001 0:00:00
正确的方法是本地主机上的方法。如何解决这个问题,为什么会这样?这是相同的代码。
因为不同机器上的区域设置不同。要以相同的格式输出日期时间,您必须明确指定格式字符串:
date.ToString("yyyy-MM-dd HH:mm:ss");
同样正如约翰在下面的评论中推荐的那样,如果您希望在不同的机器上以相同的格式输出日期时间,尽管有本地区域设置,您可以使用InvariantCulture格式提供程序:
date.ToString(CultureInfo.InvariantCulture);
MSDN:
不变的文化是文化不敏感的;它与英语相关,但与任何国家/地区无关
MSDN:
您可以使用不变的文化来显示您的日期,如果您不太关心格式,只要它始终相同即可。
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);