在 R 中读取不明确的日期时间

问题描述 投票:0回答:1

考虑以下几点:

> as.POSIXct('2021-11-07 01:30', tz='US/Central')
[1] "2021-11-07 01:30:00 CST"

注意我是怎么得到

CST
的。如果我想要
'CDT'
怎么办?

在Python-pandas中,我可以使用

ambiguous

In [5]: pd.Timestamp('2021-11-07 01:30:00').tz_localize('US/Central', ambiguous=False)
Out[5]: Timestamp('2021-11-07 01:30:00-0600', tz='US/Central')

In [6]: pd.Timestamp('2021-11-07 01:30:00').tz_localize('US/Central', ambiguous=True)
Out[6]: Timestamp('2021-11-07 01:30:00-0500', tz='US/Central')
r datetime dst
1个回答
0
投票

正常显示“CST”

seq(as.POSIXct("2021-11-07 01:58", tz="US/Central"), 
  as.POSIXct("2021-11-07 02:03", tz="US/Central"), "min")
[1] "2021-11-07 01:58:00 CST" "2021-11-07 01:59:00 CST"
[3] "2021-11-07 02:00:00 CST" "2021-11-07 02:01:00 CST"
[5] "2021-11-07 02:02:00 CST" "2021-11-07 02:03:00 CST"

但我们可以通过倒退一个小时(3600 秒)来欺骗它显示之前的“CDT”

seq(as.POSIXct("2021-11-07 01:58", tz="US/Central") - 3600, 
  as.POSIXct("2021-11-07 02:03", tz="US/Central") - 3600, "min")
[1] "2021-11-07 01:58:00 CDT" "2021-11-07 01:59:00 CDT"
[3] "2021-11-07 01:00:00 CST" "2021-11-07 01:01:00 CST"
[5] "2021-11-07 01:02:00 CST" "2021-11-07 01:03:00 CST"

你的情况

as.POSIXct("2021-11-07 01:30", tz="US/Central") - 3600
[1] "2021-11-07 01:30:00 CDT"
© www.soinside.com 2019 - 2024. All rights reserved.