Date 数据类型 (Visual Basic)

存储 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(午夜)。

您可以从 DateAndTime 类获取当前日期和时间。

格式要求

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

实施这一限制的原因是,代码的意义不应随运行应用程序的区域设置的不同而改变。 假设您硬编码了 #3/4/1998# 的 Date 文本并准备使其代表 1998 年 3 月 4 日。 在使用 mm/dd/yyyy 格式的区域设置中,3/4/1998 将按照您的期望编译。 但是,假设您在许多国家(地区)部署应用程序。 在使用 dd/mm/yyyy 的区域设置中,硬编码的文本将会编译为 April 3, 1998。 在使用 yyyy/mm/dd 的区域设置中,该文本将无效 (April 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 小时)呈现时间。

编程提示

  • **互操作注意事项。**如果正在与不是为 .NET Framework 编写的组件(如自动化或 COM 对象)交互,请记住其他环境中的 date/time 类型与 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)

System.DateTime

类型转换函数 (Visual Basic)

转换摘要 (Visual Basic)

概念

有效使用数据类型 (Visual Basic)