我遇到的问题是自从将应用程序代码库升级到.NET 4并在Windows 2012上运行后才出现 在Windows 2012或Windows 2008上,在.NET 2(3 / 3.5)中不会出现此问题 在Windows 2008上的.NET 4中不会出现此问题
在整个代码库中,重复与此类似的语句。
var sDate = DateTime.Now.ToString("dd-MMM-yyyy");
var dDate = DateTime.Parse(sDate);
令人惊讶的是,这并没有创造出您可能期望的许多问题,但是当代码编译为运行在Windows 2012上的.NET 4时,对于运行该应用程序的中国客户而言,这种情况不再适用在zh-CN文化下。
DateTime.Now.ToString("dd-MMM-yyyy");
输出的值已发生变化,因此2016年3月3日输出以下内容。
.NET 2.0 / Windows 2008 - 10-三月-2016
.NET 4.0 / Windows 2012 - 10-3月-2016
解析10-3月-2016
将导致格式异常。在.NET 4和Windows 2012中,解析10-三月-2016
仍然有效。
是否有一个简单的解决方案来纠正DateTime.ToString()的输出以输出10-三月-2016
而不是10-三月-2016
谢谢?
答案 0 :(得分:1)
如果没有解决问题,请尝试:
CultureInfo culture = new CultureInfo("zh-cn"); // China, simple chinese.
culture.DateTimeFormat.AbbreviatedMonthNames = new string[]{"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月",""};
重新定义了Simple Chinese AbbreviatedMonthNames。
答案 1 :(得分:0)
DateTime dateVAlue=new DateTime();
CultureInfo culture = CultureInfo.CurrentCulture;
DateTimeStyles styles = DateTimeStyles.None;
DateTime.TryParse(datetimestring,culture, styles, out dateValue);