【问题标题】:Character string with timezone convert to date带时区的字符串转换为日期
【发布时间】:2017-10-31 11:25:39
【问题描述】:

我正在尝试转换使用 read.table 从 csv 文件中读取的日期向量。这些被读取为字符串向量。我正在尝试使用 as_date 将其转换为日期向量。

日期向量具有以下类型的元素

dateString
"Wed Dec 11 00:00:00 ICT 2013"

在尝试使用以下命令进行转换时,

as.Date(dateString,"%a %b %e %H:%M:%S %Z %Y")
Error in strptime(x, format, tz = "GMT") : 
  use of %Z for input is not supported

在 strptime 中使用的正确格式是什么?还是在 as.Date?

【问题讨论】:

  • 时区应该被删除。您可以将其存储在单独的列中。

标签: r date datetime strptime


【解决方案1】:

只需使用 anytime 包中的 anytime() 函数即可:

R> anytime::anytime("Wed Dec 11 00:00:00 ICT 2013")
[1] "2013-12-11 CST"
R> 

还有一个utctime() 变体可以不强加您的当地时间,等等。到目前为止,我们在这里也有很多问题,所以只需搜索即可。

如果你想要一个日期,它的工作方式是一样的:

R> anytime::anydate("Wed Dec 11 00:00:00 ICT 2013")
[1] "2013-12-11"
R> 

【讨论】:

  • 时间序列和时区,时间等。是你的地盘。 +1 删除了我的答案。
  • @Dirk - 完美运行。谢谢你。如果我需要对包含大约 1800 万个条目的向量执行此操作(源 csv 文件真的很大),有没有更快的方法来进行此转换?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-24
  • 1970-01-01
  • 2013-10-23
  • 2017-01-03
  • 2019-03-04
  • 1970-01-01
相关资源
最近更新 更多