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

as.POSIXct因夏令时导致部分时间返回NA的异常问题排查

为什么as.POSIXct解析"26/03/2006 02:05:38"返回NA?

这可不是as.POSIXct的Bug哦,问题出在夏令时(DST)的时间切换上!

你看到的返回结果里带了CEST(欧洲中部夏令时间),说明你的系统默认时区是欧洲中部时区(CET/CEST)。2006年3月26日这天,欧洲中部时区会从冬令时(CET,UTC+1)切换到夏令时(CEST,UTC+2):在当地时间凌晨2点整,时钟会直接向前拨1小时到3点。也就是说,当天的02:00:00到02:59:59这段时间在现实中是不存在的——时间从01:59:59直接跳到03:00:00。

所以当你用as.POSIXct("26/03/2006 02:05:38", format="%d/%m/%Y %H:%M:%S")解析时,这个时间在当前时区里是无效的,函数自然返回NA。

而3月27日的02:05:38是完全正常的——因为夏令时已经切换完成,这个时间真实存在,所以能被正确解析。

如果你想验证这个逻辑,可以强制指定UTC时区(UTC没有夏令时切换),这个时间就会被正常解析:

as.POSIXct("26/03/2006 02:05:38", format="%d/%m/%Y %H:%M:%S", tz="UTC")
# 返回 [1] "2006-03-26 02:05:38 UTC"

内容的提问来源于stack exchange,提问作者Jeppe Olsen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:00:43