【问题标题】:Convert EST/EDT data to GMT in R在 R 中将 EST/EDT 数据转换为 GMT
【发布时间】:2023-03-20 00:42:01
【问题描述】:

我有一个包含这样的 EST/EST 日期的数据集。

c(
"11/03/2007 18:00 EDT", "11/03/2007 19:00 EDT", "11/03/2007 20:00 EDT",
"11/03/2007 21:00 EDT", "11/03/2007 22:00 EDT", "11/03/2007 23:00 EDT",
"11/04/2007 00:00 EDT", "11/04/2007 01:00 EDT", "11/04/2007 01:00 EST",
"11/04/2007 02:00 EST", "11/04/2007 03:00 EST", "11/04/2007 04:00 EST",
"11/04/2007 05:00 EST", "11/04/2007 06:00 EST", "11/04/2007 07:00 EST",
"11/04/2007 08:00 EST", "11/04/2007 09:00 EST", "11/04/2007 10:00 EST",
"11/04/2007 11:00 EST")

我想将此数据转换为 GMT。我尝试了以下代码

Data$Time=as.POSIXct(Data$Time, '%m/%d/%Y %H:%M',tz='EST5EDT')
attributes(Data$Time)$tzone <- "GMT"

并得到以下输出。

[1] "2007-11-03 22:00:00 GMT" "2007-11-03 23:00:00 GMT"
 [3] "2007-11-04 00:00:00 GMT" "2007-11-04 01:00:00 GMT"
 [5] "2007-11-04 02:00:00 GMT" "2007-11-04 03:00:00 GMT"
 [7] "2007-11-04 04:00:00 GMT" "2007-11-04 05:00:00 GMT"
 [9] "2007-11-04 05:00:00 GMT" "2007-11-04 07:00:00 GMT"
[11] "2007-11-04 08:00:00 GMT" "2007-11-04 09:00:00 GMT"
[13] "2007-11-04 10:00:00 GMT" "2007-11-04 11:00:00 GMT"
[15] "2007-11-04 12:00:00 GMT" "2007-11-04 13:00:00 GMT"
[17] "2007-11-04 14:00:00 GMT" "2007-11-04 15:00:00 GMT"
[19] "2007-11-04 16:00:00 GMT"

这对于 01:00 EST 是不正确的。如何解决这个问题?

【问题讨论】:

  • 您有多确定格式是月/日/年而不是日/月/年?
  • 格式是月/日/年我确定。
  • 格式字符

标签: r datetime posixct posixlt


【解决方案1】:

您可能必须自己提供偏移量,然后在转换为 POSIXct 时指定使用 %z

d2 = as.POSIXct(x = gsub("EDT", "-0400", gsub("EST", "-0500", d)),
                "%m/%d/%Y %H:%M %z",
                tz = "US/Eastern")
attr(d2, "tzone") = "GMT"
d2

数据

d = c("11/03/2007 18:00 EDT", "11/03/2007 19:00 EDT", "11/03/2007 20:00 EDT", 
"11/03/2007 21:00 EDT", "11/03/2007 22:00 EDT", "11/03/2007 23:00 EDT", 
"11/04/2007 00:00 EDT", "11/04/2007 01:00 EDT", "11/04/2007 01:00 EST", 
"11/04/2007 02:00 EST", "11/04/2007 03:00 EST", "11/04/2007 04:00 EST", 
"11/04/2007 05:00 EST", "11/04/2007 06:00 EST", "11/04/2007 07:00 EST", 
"11/04/2007 08:00 EST", "11/04/2007 09:00 EST", "11/04/2007 10:00 EST", 
"11/04/2007 11:00 EST")

【讨论】:

    猜你喜欢
    • 2011-07-26
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    相关资源
    最近更新 更多