Date 資料型別 (Visual Basic)
存放 IEEE 64 位元 (8 個位元組) 值,表示的日期範圍從 0001 年 1 月 1 日至 9999 年 12 月 31 日,時間範圍從 12:00:00 AM (午夜) 至 11:59:59.9999999 PM。每遞增一次代表自西曆 1 年 1 月 1 日開始又經過了 100 奈秒 (Nanosecond)。最大的值為 10000 年 1 月 1 日之前的 100 奈秒。
備註
使用 Date 資料型別來包含日期值、時間值或日期與時間值。
Date 的預設值為 0001 年 1 月 1 日 0:00:00 (午夜)。
您可以從 DateAndTime 類別取得目前的日期和時間。
格式需求
您必須將 Date 常值用數字符號 (# #) 括起來。必須以格式 M/d/yyyy 指定日期值,例如 #5/31/1993#。此需求與地區設定 (Locale) 和電腦的日期與時間格式設定無關。
之所以要有這個限制,是希望程式碼絕不能根據執行中應用程式的地區設定進行變更。假設您硬式編碼 #3/4/1998# 的 Date 常值,而且想要表示 1998 年 3 月 4 日。此使用 mm/dd/yyyy 的地區設定中,3/4/1998 會如您想要地編譯。但假設您在許多國家部署應用程式。在使用 dd/mm/yyyy 的地區設定中,您的硬式編碼常值會編譯為 4 月 3 日, 1998 年。在使用 yyyy/mm/dd 的地區設定中,常值會是無效的 (四月 1998, 0003),並會造成編譯器錯誤。
替代解決辦法
若要將 Date 常值轉換成您的地區設定格式或自訂格式,請將常值提供給 Format 函式,指定預先定義或使用者定義的日期格式。以下範例就是示範這項作業。
MsgBox("The formatted date is " & Format(#5/31/1993#, "dddd, d MMM yyyy"))
此外,也可以使用 DateTime 結構的其中一個多載建構函式來組譯日期與時間值。下列範例建立一個值來代表 1993 年 5 月 31 日下午 12:14。
Dim dateInMay As New System.DateTime(1993, 5, 31, 12, 14, 0)
時制
您可以利用 12 小時制或 24 小時制格式指定時間值,例如 #1:15:30 PM# 或 #13:15:30#。然而,若不指定分鐘或秒,則必須指定 AM 或 PM。
日期和時間預設值
如果您沒有在日期/時間常值中包含日期,Visual Basic 就會將該值的日期部分設定為 0001 年 1 月 1 日。如果您沒有在日期/時間常值中包含時間,Visual Basic 就會將該值的時間部分設定為當天的開始,也就是午夜 (0: 00: 00)。
型別轉換
若將 Date 值轉換成 String 型別,Visual Basic 就會根據執行階段地區設定指定的簡短日期格式來呈現日期,且會根據執行階段地區設定指定的時間格式 (12 小時或 24 小時) 呈現時間。
程式設計提示
**Interop 考量:**如果您正在使用的元件不是針對 .NET Framework 所撰寫的 (例如 Automation 或 COM 物件),請記住,其他環境中的日期/時間型別會不相容於 Visual Basic Date 型別。若是將日期/時間引數傳遞給此類元件,則請在新的 Visual Basic 程式碼中,將其宣告為 Double 而非 Date,並使用轉換方法 DateTime.FromOADate 和 DateTime.ToOADate。
型別字元:Date 沒有常值型別字元或識別項型別字元。但編譯器會將封閉在數字符號 (# #) 中的常值視為 Date 處理。
**架構型別。**在 .NET Framework 中對應的型別為 System.DateTime 結構。
範例
Date 資料型別的變數或常數可保留日期與時間兩者。下列範例將說明這點。
Dim someDateAndTime As Date = #8/13/2002 12:14 PM#