

发布于 2025-07-15 23:46更新于 2025-07-17 13:27716浏览日期在Excel中经常用到,但是用影刀RPA向Excel写入和读取日期,却藏着许多弯弯绕绕。
上面代码,创建了今天、明天、后天三个日期格式,和他们的字符串格式;

Excel的A、B两列设置为日期格式,A列写入字符串格式,B列写入datetime格式,两种格式都能写入。

神奇的发现:
B列写入的datetime日期,比A列的字符串日期,减少了8个小时。
将B2单元格读取,打印出来,是UTC时区。

Excel内部以 UTC时间(世界协调时) 存储日期时间值(数值类型),但显示时会根据 操作系统的本地时区设置 自动转换。
例如,若系统时区是 UTC+8(如北京时间),写入 2025-07-15 22:41:39(本地时间)时:
Excel 会将其视为 UTC+8 时间,先转换为UTC时间(减8小时 → 2025-07-15 14:41:39)。
存储后,当查看时,Excel 又会用本地时区转换回 UTC+8 时间(加8小时 → 显示 22:41:39)。
但实际现象是存储后显示为 14:41:39,表明影刀RPA在写入时可能已额外做了一次时区转换。
2.影刀RPA的潜在行为:
影刀RPA可能将您提供的日期时间字符串 错误识别为UTC时间(而非本地时间)。
写入时,Excel 收到一个UTC时间值(2025-07-15 22:41:39),再按系统时区 UTC+8 转换为本地时间:
22:41:39(UTC) → 减8小时 → 14:41:39(UTC+8)。
我们现在常用的写入日期方法,是A列的 强制以文本格式写入(避免转换)
将日期时间作为文本字符串写入,Excel不会进行时区转换,
但是此方法会失去日期时间格式(无法用于计算、筛选、图表等),仅适合展示。
之前在 飞书表格写入日期和时间 一文中详细介绍了飞书表格中用 时间序列号 的方式写入日期。
Excel中同样适用。
写入浮点类型数值,其中:
•整数部分:表示自 1899 年 12 月 30 日以来的天数
•小数部分:表示该时间占 24 小时的份额(例如 0.5 表示中午 12 点)
计算公式:小数部分=(时*60*60 + 分*60 +秒) / (24*60*60)

时间序列号默认是以年月日的格式保存。


这种方式写入的日期,是可以进行筛选的。