在R中将UTC时间转换为本地标准时间

时间:2015-07-09 18:07:14

标签: r datetime

我正在尝试将UTC时间转换为本地标准时间。我发现很多功能转换为Local Daylight Time,但我没有成功获得标准时间。现在,我有以下代码转换为我特定时区的本地日光时间:

pb.date <- as.POSIXct(date,tz="UTC")
format(pb.date, tz="timeZone",usetz=TRUE)

我将不胜感激。

1 个答案:

答案 0 :(得分:4)

首先,POSIXct日期时间内部始终是UCT。 print.POSIXtformat.POSIXt方法将适当地使输出的TZ从其内部表示中移位:

pb.date <- as.POSIXct(Sys.Date())
Sys.Date()
#[1] "2015-07-09"

那是格林威治当前日期的午夜:

format(pb.date, tz="America/Los_Angeles",usetz=TRUE)
#[1] "2015-07-08 17:00:00 PDT"

当它在格林威治的午夜时,它是前一天美国左岸的5PM白天时间。您需要为TZ(和您的操作系统)使用正确的字符值,而这两个字符值目前都未指定。

美国太平洋时区比GMT晚8小时,因此您可以使用标准/日光不可知的时区:

> format(pb.date,usetz=TRUE, tz="Etc/GMT+8")
[1] "2015-07-08 16:00:00 GMT+8"

(注意+与“后面”的反转和 - “前面”。)