首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CurrentCulture.DateTimeFormat.LongTimePattern只读

CurrentCulture.DateTimeFormat.LongTimePattern只读
EN

Stack Overflow用户
提问于 2012-04-26 19:00:01
回答 3查看 5.6K关注 0票数 1

我尝试用下面的代码设置CurrentCulture的LongTimePattern属性:

代码语言:javascript
复制
System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.LongTimePattern = "HH:mm:ss";

我得到的是InvalidOperationException:实例是只读的。

你知道我该怎么改变它吗?我想强制LongTimePattern显示任何文化的24小时格式。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-26 19:50:05

如果您更改System.Threading.Thread.CurrentThread.CurrentCulture,它将自动更新LongTimePattern。

您不能在当前分配的区域性信息中进行任何更新,只能创建一个新的区域性并将其分配给当前区域性。

代码语言:javascript
复制
System.Globalization.CultureInfo c = new System.Globalization.CultureInfo("es-ES");
c.DateTimeFormat.LongTimePattern = "h-mm-ss";
Thread.CurrentThread.CurrentCulture = c;
票数 3
EN

Stack Overflow用户

发布于 2012-06-13 10:03:20

如果您只想更改一个或两个值并保持其余值不变,则可以使用Clone获取当前区域性的可写副本,例如:

代码语言:javascript
复制
CultureInfo i;
i = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
i.DateTimeFormat.LongTimePattern = "HH:mm:ss";
i.DateTimeFormat.ShortTimePattern = "HH:mm";
Thread.CurrentThread.CurrentCulture = i;
i = (CultureInfo)Thread.CurrentThread.CurrentUICulture.Clone();
i.DateTimeFormat.LongTimePattern = "HH:mm:ss";
i.DateTimeFormat.ShortTimePattern = "HH:mm";
Thread.CurrentThread.CurrentUICulture = i;

这似乎比必须使用区域性字符串来获取起始区域性要好。

票数 1
EN

Stack Overflow用户

发布于 2012-04-26 19:29:43

我不确定您是否可以更改区域性,允许您这样做会首先违背创建区域性的目的-它们应该以该区域性普遍接受的格式显示日期和时间。

如果您希望显示不同的格式,则可以始终使用自定义日期/时间格式化程序。

有关所有可用的预设格式以及如何显示您自己的格式的详细信息,请参阅http://msdn.microsoft.com/en-us/library/az4se3k1.aspx

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

https://stackoverflow.com/questions/10332064

复制
相关文章

相似问题

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