我开始玩R中的lubridate包.我注意到now(tzone="EST")计算如下:
[1] "2015-08-25 13:01:08 EST"
Run Code Online (Sandbox Code Playgroud)
而now(tzone="PST")导致的警告:
[1] "2015-08-25 18:02:16 GMT"
Warning message:
In as.POSIXlt.POSIXct(x, tz) : unknown timezone 'PST'
Run Code Online (Sandbox Code Playgroud)
那么众所周知的时区是什么? Lubridate的有效时区有一个答案.但我想知道如何为自己解答这个问题(即通过挖掘包本身).我看看这个now()功能:
> now
function (tzone = "")
with_tz(Sys.time(), tzone)
<environment: namespace:lubridate>
Run Code Online (Sandbox Code Playgroud)
那么我看一下这个with_tz功能:
> with_tz
function (time, tzone = "")
{
check_tz(tzone)
if (is.POSIXlt(time))
new <- as.POSIXct(time)
else new <- time
attr(new, "tzone") <- tzone
reclass_date(new, time)
}
<environment: namespace:lubridate>
>
Run Code Online (Sandbox Code Playgroud)
那么我检查一下这个check_tz功能:
> check_tz
Error: object 'check_tz' not found
Run Code Online (Sandbox Code Playgroud)
不在那里.我搜索我的本地lubridateR库文件check_tz.我找不到任何东西.我进行Google搜索并找到此GitHub页面.它就是!它似乎olson_time_zones()列出了已知的时区.(更新:olson_time_zones()仅返回可用时区的子集.有关详细信息,请参阅下面的评论.)特别是,
> now(tzone="America/Los_Angeles")
[1] "2015-08-25 11:11:14 PDT"
Run Code Online (Sandbox Code Playgroud)
问:如果在GitHub上没有一个好文件或者在StackOverflow上发布答案,我怎么能回答我关于已知时区列表的问题?换句话说,我可以通过挖掘我的本地lubridate库文件找到答案吗?
问:有没有更一般的原则来挖掘R包,值得指出?
您可以通过以下方式找到可用的时区列表lubridate:
lubridate::olson_time_zones()
Run Code Online (Sandbox Code Playgroud)
通过输入可以轻松找到此信息
??timezones
Run Code Online (Sandbox Code Playgroud)
在控制台中.描述此函数的链接是我案例中帮助页面列表中的第二个条目:
另一种可能性是在手册中搜索lubridate"可用时区".
| 归档时间: |
|
| 查看次数: |
1476 次 |
| 最近记录: |