最近開發(fā)碰到一個關(guān)于DateTime轉(zhuǎn)換的業(yè)務(wù),幾個系統(tǒng)的區(qū)域語言(CultureInfo)設(shè)置都不一致,位置是控制面板-時鐘、語言區(qū)域-更改日期、時間和數(shù)字格式。
專注于為中小企業(yè)提供網(wǎng)站設(shè)計、成都做網(wǎng)站服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)烏當(dāng)免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。線上服務(wù)器 en-GB
開發(fā)環(huán)境 zh-CN
測試服務(wù)器 en-US
代碼主要涉及兩個方法DateTime.ToString()和DateTime.Parse(string),如果各種轉(zhuǎn)換都在同一個application上跑基本是不會有問題,比如:
var d = DateTime.Parse("2013-03-11 00:56:20"); var dStr = d.ToString(); var dNew = DateTime.Parse(dStr);
這樣的代碼能完全正常的,現(xiàn)在的場景會涉及到一個Console exe(簡稱A)和IIS上一個Web Service(簡稱B),麻煩就出現(xiàn)了。
A的CultureInfo默認是讀取系統(tǒng)配置,在A中執(zhí)行
var d = DateTime.Parse("2013-03-11 00:56:20"); var dStr = d.ToString();
三個環(huán)境的dStr都不一致
en-GB 11/03/2013 00:56:20
zh-CN 2013/3/11 00:56:20
en-US 11/3/2013 0:56:20 AM
接下去將dStr傳入B,在B中執(zhí)行
var dNew = DateTime.Parse(dStr);
這時候會發(fā)現(xiàn)DateTime.Parse無法識別dStr,這是因為IIS本身有自己默認的CultureInfo設(shè)置CultureInfo.InvariantCulture,這個默認配置并不區(qū)分en-GB還哦zh-CN等,所以幾乎無法識別與CultureInfo有關(guān)的日期格式。
解決方案:
1. 設(shè)置IIS的CultureInfo為對應(yīng)值,或者給DateTime.Parse指定對應(yīng)的CultureInfo,這個方法弊端很大,因為Web Service本身是提供服務(wù)給客戶端的,如果限制了一個CultureInfo,對來自各個區(qū)域的客戶端是不公平的,例如設(shè)置成zh-CN,我想英國的客戶端會瘋掉;
2. IIS保持CultureInfo.InvariantCulture默認配置,那么只好設(shè)置客戶端的CultureInfo,直接也指定成CultureInfo.InvariantCulture,大家都公平就最好了;
總之就是讓大家的CultureInfo都一致,不要隨便在DateTime.Parse指定CultureInfo我覺得是最好的實踐,除非你無法控制dStr的來源格式。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
文章題目:.Net環(huán)境日期格式小結(jié)-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://jinyejixie.com/article20/dipoco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站設(shè)計公司、網(wǎng)站改版、電子商務(wù)、網(wǎng)站導(dǎo)航、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容