2

我正在使用这个weatherData包,特别是它的getDetailedWeather功能。它返回一个数据框,该数据框的组件之一是Time,属于 类POSIXct。我的问题是所有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
4

1 回答 1

2

查看示例中的结果?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

返回的时间似乎是“正确的”,因为它从 00:00 到 23:30。数据的时区不是气象站的时区,而是主机系统的时区。您最好只更改此输出数据,因为POSIXct默认情况下,R 将始终在本地时区中显示日期/时间对象,例如:

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",但您可以使用适合气象站位置的时区),而不会影响一天中的时间数据。请参阅此处:用于识别本地时区代码的 lubridate 中的有效时区。

于 2015-04-28T00:48:39.297 回答