最後輸出的結果如下圖所示
在DateTime和DateTimeOffset之間選擇
上面說了這麼多關於DateTime和DateTimeOffset類型如何在DateTime和DateTimeOffset之間進行選擇呢?從前面的示例中大家已經看到了DateTime只可以表示UTC或者本地時區的時間或者不確定的時區這給我們應用程序的移植帶來了極大的麻煩除非你指定它表示的是UTC否則在移植應用程序時會受到諸多的限制例如下面這段最簡單的代碼
static void Main(string[] args)
{
DateTime date = DateTimeNow;
ConsoleWriteLine(date);
}
如果DateTime表示本地時區那麼應用程序在本地時區內移植是不會有問題的但是如果你的應用程序需要對不同的時區都支持建議在使用時盡量將DateTime的Kind屬性設置為Utc這一點尤其重要否則就需要考慮使用DateTimeOffset類型
與DateTime類型不同的是DateTimeOffset它唯一的標識了一個明確的時間點即時間值以及相對於UTC的偏移量它並不依賴於某個特定的時區在大多數情況下應當考慮使用DateTimeOffset來代替DateTime類型並且在SQL Server 中也已經提供了對於DateTimeOffset數據類型的支持詳細信息可以參考這篇文章《SQL Server 中的新日期數據類型》
但是DateTimeOffset類型並不是完全用來代替DateTime類型在應用程序只用到日期而不涉及時間如出生日期用DateTime類型是沒有任何問題的
[] [] [] [] [] [] []
From:http://tw.wingwit.com/Article/program/net/201311/14872.html