r语言 - 获取特定时区的当前时间



我有一个数据框,其中包含不同时区的日期和时间格式,我想将其与该时区的当前时间进行比较。 所以我想在下面的"日期和时间列"中添加 1 小时,然后将其与该时区的当前时间进行比较,就像第一个一样(时区是 EDT,当前时间为 2017-07-18 10:20 在 EDT(

Date and time   TZ
2017-07-08 16:00  EDT
2017-07-17 15:30  PDT
2017-07-17 11:00  EDT
2017-07-17 20:00  EDT
2017-07-17 10:00  EDT
2017-07-13 15:00  PDT

其中 EDT 是"美国/New_York",PDT 是太平洋时区。 我只是在原始数据中有时间,后来我用城市名称创建了一个列来知道它是"EDT 还是 PDT",不确定如何从这里继续,我在这个时区尝试了一些东西,指定时不会改变

时区真的很棘手,我的系统有一个默认值,如果"美国/New_York"时区,我不确定我尝试的是否是错误的。

谁能给出一些想法 如何在列中获取本地时间 ?

我想要的输出是:

Date and time  |  TZ | Localtime(current)
2017-07-08 16:00 | EDT | 2017-07-17  2017-07-18 10:24:19 EDT
2017-07-17 15:30 | PDT | 2017-07-17  2017-07-18 09:25:19 PDT
2017-07-17 11:00 | CDT | 2017-07-17  2017-07-18 09:25:19 CDT
2017-07-17 20:00 | EDT | 2017-07-17  2017-07-18 23:02:19 EDT
2017-07-17 10:00 | EDT | 2017-07-17  2017-07-18 10:24:19 EDT
2017-07-13 15:00 | PDT | 2017-07-17  2017-07-18 09:25:19 PDT
library(lubridate)
currentTime <- Sys.time()
tzs <- c("America/Los_Angeles", "America/Chicago", "America/New_York")
names(tzs) <- c("PDT", "CDT", "EDT")
lapply(tzs[data$TZ], with_tz, time = currentTime)

按照建议使用with_tzlubridate,然后循环。

如果您不想/需要使用润滑液,那么这将给出相同的结果,使用 @troh 答案中的tzscurrentTime对象:

Map(`attr<-`, currentTime, "tzone", tzs[dat$TZ])

相关内容

  • 没有找到相关文章

最新更新