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.FromOADate 和 DateTime.ToOADate。
**类型字符。**Date 不包含文本类型字符或标识符类型字符。 但是,编译器将包含在数字符号 (# #) 内的文本视为 Date。
Framework 类型。.NET Framework 中的对应类型是 System.DateTime 结构。
示例
Date 数据类型的变量或常数既可以存储日期也可以存储时间。 下面的示例阐释了这一点。
Dim someDateAndTime As Date = #8/13/2002 12:14 PM#