在R中转换POSIXct在版本3.5.0中产生NA

时间:2018-06-28 14:20:33

标签: r version

这是我的代码:

last_date <- "Tue, 26 Jun 2018 08:58:10 -0700 (PDT)"
as.Date(as.POSIXct(last_date, format = "%a, %d %b %Y %H:%M:%S %z"))

结果是

[1] NA

版本信息:

platform       x86_64-w64-mingw32          
arch           x86_64                      
os             mingw32                     
system         x86_64, mingw32             
status                                     
major          3                           
minor          5.0                         
year           2018                        
month          04                          
day            23                          
svn rev        74626                       
language       R                           
version.string R version 3.5.0 (2018-04-23)
nickname       Joy in Playing       

当我在另一台计算机(R版本3.4.0)上尝试相同的代码时,结果如预期的那样

[1] "2018-06-26"

关于如何解决此问题的任何想法?谢谢。

1 个答案:

答案 0 :(得分:1)

我认为您的当地语言不是英语...所以会失败:

您的解决方案:

Sys.setlocale("LC_TIME", "C")
last_date <- "Tue, 26 Jun 2018 08:58:10 -0700 (PDT)"
as.Date(as.POSIXct(last_date, format = "%a, %d %b %Y %H:%M:%S %z"))

结果:

[1] "2018-06-26"

注意::您可能必须将其设置回执行其他任务的位置。在这种情况下,请重新启动R或执行以下操作:

store_loctime <- Sys.getlocale("LC_TIME")
Sys.setlocale("LC_TIME", "C")
# Your code

Sys.setlocale("LC_TIME", store_loctime)