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