失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 修改系统默认区域语言日期格式

修改系统默认区域语言日期格式

时间:2024-07-11 13:23:02

相关推荐

修改系统默认区域语言日期格式

最近一个EF+WCF的项目中需要使用Expression传递查询条件,有的条件中会包含对DateTime类型的参数进行判断。

例如最常见的 order=>order.OrderDate > DateTime.Now;

这种用法在正常情况下是没有问题的,但是如果客户端和服务器端的语言区域不一样,就会造成通过WCF传递过后,DateTime类型的变量无法识别。

例如一般中文简体的默认日期格式为yyyy-MM-dd,中文繁体的格式为:yyyy/MM/dd,这样的话,当客户端与服务器端区域语言不同的时候,传参就会报错。

网上找了解决方法,客户端直接修改系统的默认语言格式就好,可以确定保持和服务器统一。

代码如下,一般在程序启动的时候就设定就没问题了。

1 public class LocalLanguage 2{ 3 [DllImport("kernel32.dll", EntryPoint = "GetSystemDefaultLCID")] 4 public static extern int GetSystemDefaultLCID(); 5 [DllImport("kernel32.dll", EntryPoint = "SetLocaleInfoA")] 6 public static extern int SetLocaleInfo(int Locale, int LCType, string lpLCData); 7 public const int LOCALE_SLONGDATE = 0x20; 8 public const int LOCALE_SSHORTDATE = 0x1F; 9 public const int LOCALE_STIME = 0x1003;10 11 public static void SetDateTimeFormat()12 {13 try14 {15 int x = GetSystemDefaultLCID();16 SetLocaleInfo(x, LOCALE_STIME, "HH:mm:ss"); //时间格式 17 SetLocaleInfo(x, LOCALE_SSHORTDATE, "yyyy-MM-dd"); //短日期格式 18 SetLocaleInfo(x, LOCALE_SLONGDATE, "yyyy-MM-dd"); //长日期格式 19 }20 catch (Exception ex)21 {22 Console.WriteLine(ex);23 }24 } 25}

如果觉得《修改系统默认区域语言日期格式》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。