首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用bg-BG区域性和dd-MMM yyyy格式解析11月份的日期时间。

使用bg-BG区域性和dd-MMM yyyy格式解析11月份的日期时间。
EN

Stack Overflow用户
提问于 2013-07-15 21:52:00
回答 1查看 850关注 0票数 1

我正在编写日期和时间的本地化代码,当区域性设置为保加利亚语时,我看到一种奇怪的行为,而我传入的日期是在11月。

从本质上讲,我是在尝试调用:

代码语言:javascript
复制
if (DateTime.TryParse(theDateToParse, formatProvider, DateTimeStyles.None, out localDate))
{ //Do code work here }

其中theDateToParse = 15-Нов-2013 15:20:39 (该值来自jquery datepicker,附加了时间,是11月15日),而jquery是bg-BG文化信息。

测试其他值和其他文化,问题似乎是特定于bg-BG文化中11月的任何日期。此外,如果我将其更改为使用完整的月份名称,它可以正确地解析它。

为了测试这个理论,我采用了另一种方法,在每个月的某一天创建了一个dateTime对象,并使用dd-MMM yyyy格式将它们转换为字符串。对于每个月,我都得到了一个简短的月份名称,除了11月,我得到了一个完整的月份名称。

我只是想看看有没有人知道为什么会发生这样的事情,或者有什么聪明的解决方案来解决这个问题。我花了一些时间寻找,但我甚至找不到遇到同样问题的人。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-16 03:18:06

运行以下代码:

代码语言:javascript
复制
var culture = CultureInfo.CreateSpecificCulture("bg-BG");
foreach (var name in culture.DateTimeFormat.AbbreviatedMonthNames)
    Debug.WriteLine(name);

给出这些月份名称的缩写:

януфевмарапрмайюниюлиавгсепоктноедек

在您的输入中,.Net似乎将11月的缩写设置为"ное",而不是"Нов“字符串。

我不会说保加利亚语,但谷歌翻译接受"ное“作为”11月“,但"Нов”被翻译成英语的“新”。所以我猜测源数据是不正确的。

最好的解决方案是永远不要在客户端和服务器之间以本地化字符串的形式传输日期。而应使用2013-11-15T15:20:39等ISO8601格式。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17655920

复制
相关文章

相似问题

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