Date 数据类型 (Visual Basic)

更新:2007 年 11 月

存储 IEEE 64 位(8 个字节)值,表示从 0001 年 1 月 1 日到 9999 年 12 月 31 日的日期以及从午夜 12:00:00 到晚上 11:59:59.9999999 的时间。每个增量表示从公历第 1 年的 1 月 1 日开始经过的 100 纳秒时间。最大值表示 10000 年 1 月 1 日开始前的 100 纳秒。

备注

使用 Date 数据类型包含日期值、时间值,或日期和时间值。

Date 的默认值为 0001 年 1 月 1 日的 0:00:00(午夜)。

格式要求

必须将 Date 文本括在数字符号 (# #) 内。必须以 M/d/yyyy 格式指定日期值,例如 #5/31/1993#。此要求独立于区域设置和计算机的日期和时间格式设置。

实施这一限制的原因是,代码的意义不应随运行应用程序的区域设置的不同而改变。假设您要对 Date 文本 #3/4/1998# 进行硬编码,并打算使其表示 1998 年 3 月 4 日。在使用 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 小时)呈现时间。

编程提示

  • **互操作注意事项。**如果您正连接到不是为 .NET Framework 编写的组件,例如 Automation 或 COM 对象,请记住其他环境中的日期/时间类型不与 Visual Basic Date 类型兼容。如果要将日期/时间参数传递给这样的组件,请在新 Visual Basic 代码中将其声明为 Double 而不是 Date,并使用转换方法 DateTime.FromOADateDateTime.ToOADate

  • **类型字符。**Date 不包含文本类型字符或标识符类型字符。但是,编译器将包含在数字符号 (# #) 内的文本视为 Date。

  • Framework 类型。.NET Framework 中的对应类型是 System.DateTime 结构。

示例

Date 数据类型的变量或常数既可以存储日期也可以存储时间。下面的示例阐释这一点。

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

请参见

概念

有效使用数据类型

数据类型更改(针对 Visual Basic 6.0 用户)

参考

数据类型摘要 (Visual Basic)

System.DateTime

类型转换函数

转换摘要