具有斯洛文尼亚文化 (sl-SI) 的日期时间有空格
Posted
技术标签:
【中文标题】具有斯洛文尼亚文化 (sl-SI) 的日期时间有空格【英文标题】:DataTime with Slovenian Culture (sl-SI) has spaces 【发布时间】:2019-01-14 08:46:30 【问题描述】:我已经准备了一个小型 WPF 应用程序:
查看:
View-Model 如下所示:
现在,出于某种原因,斯洛文尼亚文化的日、月和年之间存在空格:
我的意思是,我得到的不是 14.01.2019,而是 14. 01. 2019。
【问题讨论】:
不管它是什么(见下面的答案),它绝对不是 C# 错误,因为那是一种编程语言。 @IanKemp:我认为情况并非如此 - 请参阅我的回答,它引用了 Unicode CLDR。这几乎是这里的规范信息来源。 @JonSkeet 使用您在开发 NodaTime 时获得的古老知识是在作弊。 :p 但是谢谢你,直到现在我才知道 CLDR 存在,下次我有文化格式相关的问题时,我知道该去哪里! 这件事的一些相关信息:Why might my local machine be incorrectly formatting international dates? 【参考方案1】:根据Unicode CLDR,这是正确的行为。探索数据的最简单方法是通过GitHub repository of JSON format files。 generic dates file for "sl"(没有特定的 sl-SI 目录)包含此部分:
"dateFormats":
"full": "EEEE, dd. MMMM y G",
"long": "dd. MMMM y G",
"medium": "d. MMM y G",
"short": "d. MM. yy GGGGG"
所以看起来 .NET 正在做正确的事情。
【讨论】:
顺便说一句,如果有人不熟悉这些格式,G
代表“时代”,E
代表日期名称。 EEEE
表示像Monday
这样的宽日名称,GGGGG
表示像A
这样的“时代”的狭义描述(对于AD
)。 unicode.org/reports/tr35/…【参考方案2】:
根据维基Date format by country
斯洛文尼亚d. mm. yyyy
或 dd. mmmm yyyy
但是,我注意到引用实际上是 Microsoft 页面(引用在 atm 上不起作用)
所以它是一个错误,我对此表示怀疑。至于是那里大多数人使用的(这可能取决于你问谁)
【讨论】:
以上是关于具有斯洛文尼亚文化 (sl-SI) 的日期时间有空格的主要内容,如果未能解决你的问题,请参考以下文章