我想设置的CurrentCulture的LongTimePattern属性与下面的代码:
System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.LongTimePattern = "HH:mm:ss";
而我得到InvalidOperationException异常:实例是只读的。
任何想法,我能怎样改变? 我想迫使LongTimePattern
显示24小时格式的任何文化。
我想设置的CurrentCulture的LongTimePattern属性与下面的代码:
System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.LongTimePattern = "HH:mm:ss";
而我得到InvalidOperationException异常:实例是只读的。
任何想法,我能怎样改变? 我想迫使LongTimePattern
显示24小时格式的任何文化。
如果你改变了System.Threading.Thread.CurrentThread.CurrentCulture然后它会自动更新LongTimePattern。
你不能在当前分配的文化信息的任何更新用,但创建一个新的,并将其分配给当前的文化。
System.Globalization.CultureInfo c = new System.Globalization.CultureInfo("es-ES");
c.DateTimeFormat.LongTimePattern = "h-mm-ss";
Thread.CurrentThread.CurrentCulture = c;
如果你只是想改变一个或两个值,并保持休息一样,你可以使用克隆来获得当前的文化,例如可写副本:
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;
这似乎不必用文化串让你的出发文化更好。
我不知道,如果你可以改变文化,让你这样做会破坏其摆在首位文化的目的 - 他们应该表现出由文化所使用的普遍接受的格式的日期和时间。
如果你想表现出不同的格式,那么你可以随时使用自定义日期/时间格式。
见http://msdn.microsoft.com/en-us/library/az4se3k1.aspx所有可用的预先设定的格式,以及如何显示自己的格式的详细信息。