我正在尝试将UTC时间转换为本地标准时间。我发现许多功能可以转换为本地夏令时,但是我没有成功获取标准时间。现在,我有以下代码将其转换为特定时区的本地夏令时:

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

我将不胜感激任何帮助。

最佳答案

首先,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"

当是格林威治的午夜时,是美国左海岸的前一天的夏令时下午5点。您需要为TZ(和您的OS)使用正确的字符值,而这两个字符目前都未指定。

美国太平洋时区比格林尼治标准时间晚8个小时,因此您可以使用与标准/夏令时无关的时区:
> format(pb.date,usetz=TRUE, tz="Etc/GMT+8")
[1] "2015-07-08 16:00:00 GMT+8"

(请注意,将“+”与“behind”和-与“ahead”相反。)

关于r - 将R中的UTC时间转换为本地标准时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31325072/

10-13 04:10