【问题标题】:Convert TimeZone format in R在 R 中转换时区格式
【发布时间】:2018-01-30 15:18:38
【问题描述】:

我创建了一个数据集,其日期从 2010-01-01 到 2010-08-1,间隔为 5 分钟。

library(chron)
t1 <- chron("2010/01/01","00:00:00",format=c("y/m/d","h:m:s"))
t2 <- chron("2018/01/01","00:00:01",format=c("y/m/d","h:m:s"))
deltat <- times("00:05:00")
date <- seq(t1,t2,by=times("00:05:00"))

我使用 parsedate 包格式化日期以遵循 ISO 8601 标准。

library(parsedate)
date1 <- format_iso_8601(date)
head(date1)
[1] "2010-01-01T00:00:00+00:00" "2010-01-01T00:05:00+00:00"
[3] "2010-01-01T00:10:00+00:00" "2010-01-01T00:15:00+00:00"
[5] "2010-01-01T00:20:00+00:00" "2010-01-01T00:25:00+00:00"

这默认使用 GMT 时区,但是,我想使用 EET 时区。 我得到它使用:

date1 <- as.POSIXct(date)
date2 <- format(date1,tz="Europe/Istanbul",usetz=TRUE)
[1] "2010-01-01 02:00:00 EET" "2010-01-01 02:05:00 EET"
[3] "2010-01-01 02:10:00 EET" "2010-01-01 02:15:00 EET"
[5] "2010-01-01 02:20:00 EET" "2010-01-01 02:25:00 EET"

这样,我得到了正确的时区。有没有办法让我的日期显示为2010-01-01 02:00:00+02:00?我应该如何更改我的代码来实现这一点?

【问题讨论】:

    标签: r timezone iso


    【解决方案1】:
    format_iso_8601(as.POSIXlt(date,tz="EET"))
     [1] "2010-01-01T02:00:00+00:00" "2010-01-01T02:05:00+00:00" "2010-01-01T02:10:00+00:00"
     [4] "2010-01-01T02:15:00+00:00" "2010-01-01T02:20:00+00:00" "2010-01-01T02:25:00+00:00"
    

    【讨论】:

    • 感谢您的回答。您的回答解决了时间问题,但时区 (+00:00) 保持不变。 (+00:00) 可以改成 (+02:00) 吗?
    • 时区保持不变是什么意思?
    • 我的意思是 +00:00。 +00:00 不是等同于 GMT 吗?
    猜你喜欢
    • 1970-01-01
    • 2021-12-21
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    • 2022-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多