这有效:
as.Date("22JAN2010", format="%d%b%Y")
>"2010-01-22"
这不会:
as.Date("22MAR2010", format="%d%b%Y")
>NA
它在 3 月、5 月、10 月休息,适用于 1 月、2 月、4 月、6 月、7 月、8 月、9 月、11 月、12 月。
巧合的是,我的 Windows 7 操作系统语言是荷兰语,其日期缩写为 MAA、MEI、OKT。但那些也不起作用。
您可以通过内置数据对象了解哪些月度缩写将被识别:month.abb
这是国际化的。
month.abb
[1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
sessionInfo() 函数还返回语言环境,对我来说是:
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
...并且可以得到那个单一的向量,Sys.getlocale()
但我怀疑你有其他设置。正如@Jaap 所评论的那样,该值由您控制Sys.setlocale
。应该使用“LC_TIME”项的特定值,strptime
它是as.Dat.character
函数的核心。
(该Sys.setlocale
函数有 2 个命名参数“category”和“locale”,这就是第一个使用建议Sys.setlocale(LC_TIME = "en_GB.UTF-8")
失败的原因。在我看来,这似乎也是典型的 R 语法,因为通常的配对列表形式不引用名称。我多次犯过这个错误。)