修改系统默认区域语言日期格式
生活随笔
收集整理的這篇文章主要介紹了
修改系统默认区域语言日期格式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
????? 最近一個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 try 14 { 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 }?
轉載于:https://www.cnblogs.com/Miraclky-G/archive/2013/04/12/3016147.html
總結
以上是生活随笔為你收集整理的修改系统默认区域语言日期格式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 长城汽车推新品牌 将在2022年上市
- 下一篇: java信息管理系统总结_java实现科