我面临一个非常奇怪的问题。我正在写这样的CSV文件:
sw.WriteLine($"{posting.publishedOn},{posting.ExpirationDate}");
发布日期是DateTime
对象,到期日期是DateTime?
对象。
但是,当我在德国的生产服务器上运行它时,它打印出的日期格式非常不一致。有时我会将日期格式化为这样(欧洲风格):
Posting Date,Expiration Date
06.08.2018 11:49,08.07.2018 11:49
有时我会将日期格式化为这样(美国风格):
Posting Date,Expiration Date
8/15/2018 7:56:12 AM,10/14/2018 7:56:12 AM
发布日期和到期日期是完全独立的.NET对象,但每一行都是一致的 - 即如果一列是欧洲格式,另一列也是如此。
我尝试设置这样的文化:
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
但它似乎没有什么区别。
当我在德国的服务器上运行控制台应用程序时会发生这种情况。
可能是什么导致了这个?有没有办法解决它而不必每次写日期时都用格式显式调用ToString
?
我相信你需要像这样设定特定的文化:
CultureInfo.CurrentUICulture = CultureInfo.CreateSpecificCulture("en-US");