在 weatherData 查询中设置时区

Setting time zone in weatherData queries

我正在使用 weatherData 包,特别是它的 getDetailedWeather 功能。它returns一个数据框,数据框的组成部分之一是Time,classPOSIXct。我的问题是所有 Time 都设置为我正在使用的机器的本地时区。我很确定这是不正确的,数据反映了当地时间,而 API 唯一做的就是将时区添加到数据中,而不更改它。我对么?我怎样才能告诉 API 停止使用我的默认时区?

例如:

library(weatherData)
dat <- getDetailedWeather("NRT", "2014-04-29")
dat$Time
# [1] "2014-04-29 00:00:00 EST"  ## local timezone, not of the weather station

查看?getDetailedWeather中示例的结果:

library(weatherData)
dat <- getDetailedWeather("NRT", "2014-04-29")
dat$Time
# [1] "2014-04-29 00:00:00 EST" "2014-04-29 00:30:00 EST" "2014-04-29 01:00:00 EST" etc

返回的时间似乎是 'correct',因为它从 00:00 到 23:30。数据的时区不是气象站的时区,而是主机系统的时区。一旦你拥有它,你可能最好只改变这个输出数据,因为默认情况下 R 将始终在本地时区显示 date/time POSIXct 对象,例如:

as.POSIXct(as.character(dat$Time),tz="UTC")
# [1] "2014-04-29 00:00:00 UTC" "2014-04-29 00:30:00 UTC" "2014-04-29 01:00:00 UTC" etc

以上将时区更改为新时区(在本例中 "UTC",但您可以使用适合气象站位置的时区)而不影响时间数据。请参阅此处: 以识别本地时区代码。