微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 R 中使用 strptime 转换时区

如何解决在 R 中使用 strptime 转换时区

我的“日期/时间”字段的示例是:

2020-12-30T03:32:30.000Z

我希望将此时区转换为“tz = Singapore”。 当我执行这段代码时,

geodf$time <- strptime(geodf$time,format = "%Y-%m-%dT%H:%M:%OS",tz="Singapore")

结果输出为:

“2020-12-30 03:32:30 +08”

它所做的唯一更改是背面的附加标签 (+08)。时间根本没有改变 - 我需要将时间更改为新加坡的时间,而不仅仅是添加 +08。

出了什么问题?

解决方法

您时间中的 Z 表示时区是 UTC。一种方法是使用类 POSIXct 的对象并更改时区:

geodf$time <- as.POSIXct(geodf$time,format = "%Y-%m-%dT%H:%M:%OS",tz="UTC")
geodf
#                 time
#1 2020-12-30 03:32:30

attributes(geodf$time)$tzone <- "Singapore"
geodf
#                 time
#1 2020-12-30 11:32:30

样本数据:

geodf <- structure(list(time = "2020-12-30T03:32:30.000Z"),class = "data.frame",row.names = c(NA,-1L))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。