我试图使用as.POSIXct()将unix纪元时间戳转换为日期时间对象
当我调用as.POSIXct()时,我需要指定时区(欧洲/伦敦或UTC).
如果我跑
> t<-as.POSIXct(1445329330, tz="Europe/London", origin="1970-01-01")
> t
Run Code Online (Sandbox Code Playgroud)
R返回"2015-10-20 09:22:10 BST"警告信息:1:在as.POSIXlt.POSIXct(x,tz):未知时区'默认/欧洲/伦敦'2:在as.POSIXlt.POSIXct( x,tz):未知时区'默认/欧洲/伦敦'
我已经尝试指定tz ="BST",但这也会返回警告
Warning messages:
1: In as.POSIXlt.POSIXct(x, tz) : unknown timezone 'BST
'
2: In as.POSIXlt.POSIXct(x, tz) : unknown timezone 'default/Europe/London'
3: In as.POSIXlt.POSIXct(x, tz) : unknown timezone 'BST
'
4: In as.POSIXlt.POSIXct(x, tz) : unknown timezone 'default/Europe/London'
Run Code Online (Sandbox Code Playgroud)
我根据Joshua Ulrich的帖子查找了zoneinfo/zone.tab,并且"Europe/London"确实出现在zone.tab文件中,而"BST"没有.所以我认为欧洲/伦敦应该是一个有效的tz选择.它是否正确?
有没有人有关于为什么我收到警告的建议,以及为什么没有将指定的时区分配给as.POSIXct对象?
应该注意的是,在将MacOS更新为High Sierra之前,调用as.POSIXct()的脚本在没有警告的情况下运行.操作系统更新是否会导致这些警告?当我运行Sys.timezone()时,它返回NA
提前谢谢了
鸢尾花
我正在尝试在 Mac OS X Mavericks (10.9.4) 上的 R v3.1.1 中将字符串转换为 POSIXct。这在升级 Mavericks 然后 R 之前有效。我非常简单的代码现在发出警告,我不明白为什么:-
as.POSIXct("2014-05-24 12:45", "%Y-%m-%d %hh:%mm")
[1] "2014-05-24 12:45:00 GMT"
Warning messages:
1: In strptime(xx, f <- "%Y-%m-%d %H:%M:%OS", tz = tz) :
unknown timezone '%Y-%m-%d %hh:%mm'
2: In as.POSIXct.POSIXlt(x) : unknown timezone '%Y-%m-%d %hh:%mm'
3: In strptime(xx, f <- "%Y/%m/%d %H:%M:%OS", tz = tz) :
unknown timezone '%Y-%m-%d %hh:%mm'
4: In as.POSIXct.POSIXlt(x) : unknown timezone '%Y-%m-%d %hh:%mm'
5: In strptime(xx, f <- "%Y-%m-%d %H:%M", tz = …Run Code Online (Sandbox Code Playgroud)