Date 資料型別 (Visual Basic)

更新:2007 年 11 月

存放 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 的預設值為 10001 年 1 月 1 日 0:00:00 (午夜)。

格式需求

您必須將 Date 常值用數字符號 (# #) 括起來。必須以格式 M/d/yyyy 指定日期值,例如 #5/31/1993#。此需求與地區設定 (Locale) 和電腦的日期與時間格式設定無關。

之所以要有這個限制,是希望程式碼絕不能根據執行中應用程式的地區設定進行變更。假設您硬式編碼 #3/4/1998# 的 Date 常值,並想要它表示 March 4, 1998。在使用 mm/dd/yyyy 的地區設定中,會編譯為 3/4/1998。但假設您在許多國家部署應用程式。在使用 dd/mm/yyyy 的地區設定中,硬式編碼常值將編譯成 April 3, 1998。在使用 yyyy/mm/dd 的語言環境中,常值將失效 (April 1998, 0003),且可能造成編譯器錯誤。

替代解決辦法

若要將 Date 常值轉換成您的地區設定格式或自訂格式,請將常值提供給 Format 函式,指定 預先定義的日期/時間格式 (Format 函式)使用者定義日期/時間格式 (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 6.0 使用者可以進行的資料型別變更

參考

資料型別摘要 (Visual Basic)

System.DateTime

型別轉換函式

轉換摘要