Date 資料類型 (Visual Basic)Date Data Type (Visual Basic)

具有 IEEE 64 位元 (8 位元組) 值,以代表從 0001 年 1 月 1 日到 9999 年 12 月 31 日的日期,以及從上午 (午夜) 12:00:00 到下午 11:59:59.9999999 的時間。Holds IEEE 64-bit (8-byte) values that represent dates ranging from January 1 of the year 0001 through December 31 of the year 9999, and times from 12:00:00 AM (midnight) through 11:59:59.9999999 PM. 每個增量代表西曆日曆 1 年 1 月 1 日開始之後經過 100 奈秒的時間。Each increment represents 100 nanoseconds of elapsed time since the beginning of January 1 of the year 1 in the Gregorian calendar. 最大值代表 10000 年 1 月 1 開始之前的 100 奈秒。The maximum value represents 100 nanoseconds before the beginning of January 1 of the year 10000.


使用 Date 資料類型可包含日期值、時間值或日期和時間值。Use the Date data type to contain date values, time values, or date and time values.

Date 的預設值為 0001 年 1 月 1 日的 0:00:00 (午夜)。The default value of Date is 0:00:00 (midnight) on January 1, 0001.

您可以從 DateAndTime 取得目前的日期和時間。You can get the current date and time from the DateAndTime class.

格式需求Format Requirements

您必須將 Date 常值包含在數字符號 (# #) 中。You must enclose a Date literal within number signs (# #). 您必須指定 M/d/yyyy 格式 (例如 #5/31/1993#) 或 yyyy-MM-dd (例如 #1993-5-31#) 的日期值。You must specify the date value in the format M/d/yyyy, for example #5/31/1993#, or yyyy-MM-dd, for example #1993-5-31#. 先指定年份時可以使用斜線。You can use slashes when specifying the year first. 這項需求與您的地區設定和電腦的日期和時間格式設定無關。This requirement is independent of your locale and your computer's date and time format settings.

之所以有這項限制,是因為您程式碼的意義絕不應根據您的應用程式執行所在的地區設定而變更。The reason for this restriction is that the meaning of your code should never change depending on the locale in which your application is running. 假設您對 #3/4/1998#Date 常值進行硬式編碼,並想要讓它代表 1998 年 3 月 4 日。Suppose you hard-code a Date literal of #3/4/1998# and intend it to mean March 4, 1998. 在使用 mm/dd/yyyy 的地區設定中,3/4/1998 會依照您的需求進行編譯。In a locale that uses mm/dd/yyyy, 3/4/1998 compiles as you intend. 但假設您將應用程式部署在許多國家/地區。But suppose you deploy your application in many countries/regions. 在使用 dd/mm/yyyy 的地區設定中,您硬式編碼的常值會編譯為 1998 年 4 月 3 日。In a locale that uses dd/mm/yyyy, your hard-coded literal would compile to April 3, 1998. 在使用 yyyy/mm/dd 的地區設定中,常值將是無效的 (0003 年 4 月 1998 日),而且會導致編譯器錯誤。In a locale that uses yyyy/mm/dd, the literal would be invalid (April 1998, 0003) and cause a compiler error.


若要將 Date 常值轉換為您的地區設定或自訂格式,請將常值提供給 Format 函式,以指定預先定義或使用者定義的日期格式。To convert a Date literal to the format of your locale, or to a custom format, supply the literal to the Format function, specifying either a predefined or user-defined date format. 下列範例為其示範。The following example demonstrates this.

MsgBox("The formatted date is " & Format(#5/31/1993#, "dddd, d MMM yyyy"))

或者,您可以使用 DateTime 結構的其中一個多載建構函式,以組合日期和時間值。Alternatively, you can use one of the overloaded constructors of the DateTime structure to assemble a date and time value. 下列範例會建立一個值來代表 1993 年 5 月 31 日下午 12:14。The following example creates a value to represent May 31, 1993 at 12:14 in the afternoon.

Dim dateInMay As New System.DateTime(1993, 5, 31, 12, 14, 0)

小時格式Hour Format

您可以指定 12 小時或 24 小時格式的時間值,例如 #1:15:30 PM##13:15:30#You can specify the time value in either 12-hour or 24-hour format, for example #1:15:30 PM# or #13:15:30#. 不過,若未指定分或秒,您必須指定 AM 或 PM。However, if you do not specify either the minutes or the seconds, you must specify AM or PM.

日期和時間預設值Date and Time Defaults

如果您未在日期/時間常值中包含日期,Visual Basic 會將值的日期部分設為 0001 年 1 月 1 日。If you do not include a date in a date/time literal, Visual Basic sets the date part of the value to January 1, 0001. 如果您未在日期/時間常值中包含時間,Visual Basic 會將值的時間部分設為一天的開始,即午夜 (0:00:00)。If you do not include a time in a date/time literal, Visual Basic sets the time part of the value to the start of the day, that is, midnight (0:00:00).

類型轉換Type Conversions

如果您將 Date 值轉換為 String 類型,Visual Basic 會根據執行階段地區設定所指定的簡短日期格式呈現日期,並根據執行階段地區設定所指定的時間格式 (12 小時制或 24 小時制) 呈現時間。If you convert a Date value to the String type, Visual Basic renders the date according to the short date format specified by the run-time locale, and it renders the time according to the time format (either 12-hour or 24-hour) specified by the run-time locale.

程式設計提示Programming Tips

  • Interop 考慮。Interop Considerations. 如果您要使用的元件不是針對 .NET Framework 所撰寫 (例如 Automation 或 COM 物件),請記住,其他環境中的日期/時間類型與 Visual Basic Date 類型並不相融。If you are interfacing with components not written for the .NET Framework, for example Automation or COM objects, keep in mind that date/time types in other environments are not compatible with the Visual Basic Date type. 如果您要將日期/時間引數傳遞至這類元件,請在新的 Visual Basic 程式碼中將它宣告為 Double (而不是 Date),並使用轉換方法 DateTime.FromOADateDateTime.ToOADateIf you are passing a date/time argument to such a component, declare it as Double instead of Date in your new Visual Basic code, and use the conversion methods DateTime.FromOADate and DateTime.ToOADate.

  • 輸入字元。Type Characters. Date沒有常數值型別字元或識別項型別字元。Date has no literal type character or identifier type character. 不過,編譯器會將包含在數字符號 (# #) 內的常值視為 DateHowever, the compiler treats literals enclosed within number signs (# #) as Date.

  • 架構類型。Framework Type. 在 .NET Framework 中對應的類型為 System.DateTime 結構。The corresponding type in the .NET Framework is the System.DateTime structure.


Date 資料類型的變數或常數會同時包含日期和時間。A variable or constant of the Date data type holds both the date and the time. 下列範例將說明這點。The following example illustrates this.

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

另請參閱See also