如果在轉換時指定的時間是Unspecified,轉換后產生的DateTimeOffset的值的偏移量將會為本地時區,如下代碼所示:
static void Main(string[] args)
{
DateTime dateA = new DateTime(2008, 8, 24, 23, 33, 58);
DateTime dateB = DateTime.SpecifyKind(dateA, DateTimeKind.Unspecified);
DateTimeOffset dateC = dateB;
Console.WriteLine(dateB);
Console.WriteLine(dateC);
}
輸出結果如下圖所示,可以看到它產生的輸出是本地時區:

這一點其實從DateTimeOffset的一個參數為DateTime的構造函數中就能夠看出來,它只判斷DateTime是否為UTC,否則就取當前本地時區的偏移量:
public DateTimeOffset(DateTime dateTime) {
TimeSpan offset;
if (dateTime.Kind != DateTimeKind.Utc) {
// Local 和 Unspecified 都轉換為Local
offset = Ti