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.FromOADateDateTime.ToOADate

  • 型別字元:Date 沒有常值型別字元或識別項型別字元。 但編譯器會將封閉在數字符號 (# #) 中的常值視為 Date 處理。

  • **架構型別。**在 .NET Framework 中對應的型別為 System.DateTime 結構。

範例

Date 資料型別的變數或常數可保留日期與時間兩者。 下列範例將說明這點。

Dim someDateAndTime As Date = #8/13/2002 12:14 PM#

請參閱

參考

資料型別摘要 (Visual Basic)

System.DateTime

型別轉換函式 (Visual Basic)

轉換摘要 (Visual Basic)

概念

有效率地使用資料型別 (Visual Basic)