将 UTC 时间转换为包含星期几和日期的本地时间

Converting UTC Time to Local Time with Days of Week and Date Included

我有以下 2 列作为更大数据框的一部分。 Timezone_Offset 是当地时间的小时差(我正在查看的数据是美国西海岸)。换句话说,UTC + Offset = Local Time。

我希望将 UTC 时间转换为当地时间,同时还可以根据需要正确更改星期几和日期。例如,这里是两列的前 5 行。

                           UTC              Timezone_Offset
Sun Apr 08 02:42:03 +0000 2012                           -7
Sun Jul 01 03:27:20 +0000 2012                           -7
Wed Jul 11 04:40:18 +0000 2012                           -7
Sat Nov 17 01:31:36 +0000 2012                           -8
Sun Apr 08 20:50:30 +0000 2012                           -7

当星期几和日期也必须更改时,事情就变得棘手了。例如,查看第一行,当地时间应该是 Sat Apr 07 19:42:03 +0000 2012。在第二行中,月份也必须更改。

抱歉,我是 R 的新手。有人可以解释一下如何做到这一点吗?非常感谢您。

解析为 UTC,然后以秒为单位应用偏移量,即时间 60*60 :

data <- read.csv(text="UTC,       Timezone_Offset
Sun Apr 08 02:42:03 +0000 2012,                    -7
Sun Jul 01 03:27:20 +0000 2012,                    -7
Wed Jul 11 04:40:18 +0000 2012,                    -7
Sat Nov 17 01:31:36 +0000 2012,                    -8
Sun Apr 08 20:50:30 +0000 2012,                    -7", stringsAsFactors=FALSE)

data$pt <- as.POSIXct(strptime(data$UTC, "%a %b %d %H:%M:%S %z %Y", tz="UTC"))

data$local <- data$pt + data$Timezone_Offset*60*60

结果:

> data[,3:4]
                   pt               local
1 2012-04-08 02:42:03 2012-04-07 19:42:03
2 2012-07-01 03:27:20 2012-06-30 20:27:20
3 2012-07-11 04:40:18 2012-07-10 21:40:18
4 2012-11-17 01:31:36 2012-11-16 17:31:36
5 2012-04-08 20:50:30 2012-04-08 13:50:30
>