我正在尝试将UTC时间转换为本地标准时间。我发现很多功能转换为Local Daylight Time,但我没有成功获得标准时间。现在,我有以下代码转换为我特定时区的本地日光时间:
pb.date <- as.POSIXct(date,tz="UTC")
format(pb.date, tz="timeZone",usetz=TRUE)
我将不胜感激。
答案 0 :(得分:4)
首先,POSIXct日期时间内部始终是UCT。 print.POSIXt
和format.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"
(注意+与“后面”的反转和 - “前面”。)