You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确初始化Date?为何12:00:00 AM未显示时间?

VBA日期显示问题解答

原因分析

VBA的Date类型本质是浮点数:整数部分对应日期,小数部分对应时间。午夜(12:00:00 AM / 00:00:00)的小数部分为0,属于日期的默认起始时刻。MsgBox在输出Date变量时,会遵循系统默认的显示规则:当时间部分为0时自动省略,仅显示日期;只有时间部分非0(比如中午12点),才会显示完整的日期时间。

你改成00:00:00没用,是因为它和12:00:00 AM是同一个时间点,对应的浮点值完全一致,MsgBox依然会触发自动省略逻辑。

解决方案

要强制显示完整的日期时间(包括午夜的时间部分),需要用Format函数自定义输出格式,示例代码如下:

Dim tmpDate as Date
tmpDate = "01/01/2000 12:00:00 AM"
MsgBox Format(tmpDate, "mm/dd/yyyy hh:mm:ss AM/PM")
tmpDate = "01/01/2000 12:00:00 PM"
MsgBox Format(tmpDate, "mm/dd/yyyy hh:mm:ss AM/PM")

执行后输出结果:

01/01/2000 12:00:00 AM
01/01/2000 12:00:00 PM

内容的提问来源于stack exchange,提问作者Mr. Tacio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 17:52:09