日期类型

DATE 类型是使用 8 字节浮点数字来实现的。 日以整数增量表示,从 1899 年 12 月 30 日开始,午夜时间为零点。 小时值以数字的小数部分的绝对值表示。 下表介绍了与其 DATE 类型数字等效的多个日期:

日期和时间 表示形式
1899 年 12 月 30 日午夜 0.00
1900 年 1 月 1 日午夜 2.00
1900 年 1 月 4 日午夜 5.00
1900 年 1 月 4 日上午 6 点 5.25
1900 年 1 月 4 日中午 5.50
1900 年 1 月 4 日下午 9 点 5.875

DATE 日期类型以及 COleDateTime 类将日期和时间表示为经典数字行。 COleDateTime 类包含用于操作 DATE 值的多种方法,包括转换到其他常见日期格式和从其他通用日期格式转换。

在“自动化”中使用这些日期和时间格式时,应注意以下几点:

  • 日期是在本地时间指定的;在使用不同时区中的日期时,必须手动同步。

  • 日期类型不考虑夏令时。

  • 对于(1899 年 12 月 30 日之前)小于 0 的日期值,日期时间线变得不连续。 这是因为日期值的整数部分被视为有符号,而小数部分则被视为无符号部分。 换句话说,日期值的整数部分可能是正数或负数,而日期值的小数部分始终添加到总体逻辑日期。 下表列出了一些例子:

日期和时间 表示形式
1899 年 12 月 27 日午夜 -3.00
1899 年 12 月 28 日中午 -2.50
1899 年 12 月 28 日午夜 -2.00
1899 年 12 月 29 日午夜 -1.00
1899 年 12 月 30 日,下午 6 点 -0.75
1899 年 12 月 30 日中午 -0.50
1899 年 12 月 30 日,上午 6 点 -0.25
1899 年 12 月 30 日午夜 0.00
1899 年 12 月 30 日,上午 6 点 0.25
1899 年 12 月 30 日中午 0.50
1899 年 12 月 30 日,下午 6 点 0.75
1899 年 12 月 31 日午夜 1.00
1900 年 1 月 1 日午夜 2.00
1900 年 1 月 1 日中午 2.50
1900 年 1 月 2 日午夜 3.00

注意

请注意,由于上午 6:00 始终以小数值 0.25 表示,无论表示日期的整数是否为正(1899 年 12 月 30 日以后)或负(1899 年 12 月 30 日之前),简单的浮点比较将错误地把早于 1899 年 12 月 30 日前面的某天上午 6 点排到同一天表示上午 7 点的日期后面

有关与 DATE 和 COleDateTime 类型相关的问题的详细信息,请参阅 COleDateTime 类日期和时间:自动化支持

另请参阅

日期和时间
COleDateTime 类