【发布时间】:2026-01-19 07:40:02
【问题描述】:
我有一个字符串向量,看起来像这样。我想将它们转换为日期。时区的字符造成了麻烦。
> a
[1] "07/17/2014 5:01:22 PM EDT" "7/17/2014 2:01:05 PM PDT" "07/17/2014 4:00:48 PM CDT" "07/17/2014 3:05:16 PM MDT"
如果我使用:strptime(a, "%d/%m/%Y %I:%M:%S %p %Z") 我会得到[1] NA
如果我省略时区的“%Z”,并使用这个:
strptime(a, "%m/%d/%Y %I:%M:%S %p", tz = "EST5EDT")我明白了
[1] "2014-07-17 17:01:22 EDT"
由于我的字符串包含不同的时区 - PDT、CDT、EDT、MDT,我不能将所有时区默认为EST5EDT。克服的一种方法是将向量拆分为每个时区的不同向量,删除字母 PDT / EDT 等,并使用 strptime - "EST5EDT" , "CST6CDT" 等应用正确的时区。还有其他方法吗?解决这个?
【问题讨论】:
标签: r datetime timezone strptime