|
最近一直在負(fù)責(zé)公司內(nèi)部框架的升級工作,今天對一個小問題進(jìn)行了重新思考——時間的處理。具體來說,是如何有效地進(jìn)行時間的處理以提供對跨時區(qū)的支持。對于一個分布式的應(yīng)用來說,倘若客戶端和服務(wù)端部署與不同的地區(qū),在對時間進(jìn)行處理的時候,就需要考慮時區(qū)的問題。以我們現(xiàn)在的一個項目為例,這是一個為澳大利亞某機(jī)構(gòu)開發(fā)的一個基于Smart Client應(yīng)用(Windows Form客戶端),服務(wù)器部署于墨爾本,應(yīng)用的最終用戶可能需要跨越不同的州。澳洲地廣人稀,不同的州也有可能會跨越不同的時區(qū)。假設(shè)數(shù)據(jù)庫并不支持對時區(qū)的區(qū)分,服務(wù)端需要對針對客戶端所在的時區(qū)對時間進(jìn)行相應(yīng)的處理。不過,對該問題解決方案的介紹我會放在后續(xù)的文章中,在這里我們先來介紹一些基礎(chǔ)性的內(nèi)容——談?wù)勎覀兪煜さ腟ystem.DateTime類型。
一、你是否知道System.DateTimeKind?
System.DateTime類型,我們再熟悉不過。順便說一下,這個類型不是class,而是一個struct,換言之它是值類型,而不是引用類型。DateTime處理包含我們熟悉的年、月、日、時、分、秒和毫秒等基本屬性之外,還具有一個重要的表示時間類型(Kind)的屬性:Kind。該屬性的類型為System.DateTimeKind枚舉。DateTimeKind定義如下,它具有三個枚舉值:Unspecified、Utc和Local。后兩個分別表示UTC(格林威治時間)和本地時間。Unspecified顧名思義,就是尚未指定具體類型,這是默認(rèn)值。
1: [Serializable, ComVisible(true)]
2: public enum DateTimeKind
3: {
4: Unspecified,
5: Utc,
6: Local
7: }
NET技術(shù):System.DateTime詳解,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。