小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

關(guān)于DateTime和String轉(zhuǎn)換的容易犯得錯誤

 悟靜 2012-06-14

在開發(fā)中,常常會有DataTime類型和String類型的互相轉(zhuǎn)換的要求,比較常用的寫法是

var date = Convert.ToDateTime("2012/06/08 09:10:10");

 

 

咋一看這個代碼好像沒有什么問題, 實際運行也沒發(fā)現(xiàn)問題。但是客戶的機器上卻是有轉(zhuǎn)換的異常。

后來經(jīng)過調(diào)查發(fā)現(xiàn),客戶電腦上系統(tǒng)設(shè)置的CultureInfo是西班牙。這樣代碼會認(rèn)為2012/06/08 09:10:10 不是一個合法的日期字符串。

 

正確的寫法應(yīng)當(dāng)是:

var dtFormat = new DateTimeFormatInfo {LongDatePattern = "yyyy/MM/dd hh:mm:ss"}; //指定以特定格式轉(zhuǎn)換成DateTime

var date = Convert.ToDateTime("2012/06/08 09:10:10", _dtFormat)

 

 

DateTime轉(zhuǎn)換成字符串

var dateString = System.DateTime.Now.ToString()

 

這樣轉(zhuǎn)換的字符串同樣會根據(jù)運行的系統(tǒng)的CultureInfo不同而有不同格式的輸出。

對于WCF, Web service, Ajax這樣的客戶端和服務(wù)端如果是不同的CultureInfo的情況下,非常容易出錯。

 

在轉(zhuǎn)換成字符串的時候,加上CultureInfo.InvariantCulture

var dateString = System.DateTime.Now.ToString(CultureInfo.InvariantCulture)

 

同時在從字符串轉(zhuǎn)換回來的時候,

var date = DateTime.Parse(serverInfo.ServerDateTimeString, CultureInfo.InvariantCulture)

 

 

這個CultureInfo有點像英語格式,但它不和國家地區(qū)掛鉤,它可以提供一個可靠的在多語言環(huán)境下的規(guī)范格式化

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多