首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在有效的DateTime中无法识别的中文日期字符串

在有效的DateTime中无法识别的中文日期字符串
EN

Stack Overflow用户
提问于 2016-03-10 06:32:27
回答 2查看 2.3K关注 0票数 2

我有一个问题是在将我们的应用程序代码库升级到.NET 4并在Windows2012上运行之后才发生的--这个问题在Windows2012或Windows2008的.NET 2 (3/3.5)中没有出现,在Windows2008的.NET 4中没有出现此问题

在整个代码库中,重复类似于此的语句。

代码语言:javascript
运行
复制
var sDate = DateTime.Now.ToString("dd-MMM-yyyy");
var dDate = DateTime.Parse(sDate);

令人惊讶的是,这并没有像你所期望的那样产生很多问题,但是当代码被编译成运行在Windows2012上的.NET 4时,我们的中国客户已经不再工作了,他们在zh-CN文化下运行这个应用程序。DateTime.Now.ToString("dd-MMM-yyyy");的输出值发生了变化,因此在2016年3月3日到2016年3月期间,将输出以下内容。

.NET 2.0 /Windows2008-10-三月-2016

.NET 4.0 /Windows2012- 10-3月-2016

解析10-3月-2016将导致格式异常。解析10-三月-2016仍然有效,在.NET 4和Windows2012中。

是否有一个简单的解决方案来纠正DateTime.ToString()的输出以输出10-三月-2016而不是10-三月-2016,谢谢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-10 08:27:06

  1. 在“区域”和“语言”选项中更改格式。
  2. 如果不能解决问题,请尝试: CultureInfo CultureInfo=新CultureInfo("zh-cn");//中国,简单中文。culture.DateTimeFormat.AbbreviatedMonthNames =新string[]{“一月”,“二月”,“三月”,“四月”,“五月”,“六月”,“七月”,“八月”,“九月”,“十月”,“十一月”,“十二月”,""}; 重新定义简单的中文AbbreviatedMonthNames。
票数 1
EN

Stack Overflow用户

发布于 2016-03-10 06:43:40

代码语言:javascript
运行
复制
DateTime dateVAlue=new DateTime();

CultureInfo culture = CultureInfo.CurrentCulture;

DateTimeStyles styles = DateTimeStyles.None;

DateTime.TryParse(datetimestring,culture, styles, out dateValue);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35909221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档