这有效:
as.Date("22JAN2010", format="%d%b%Y")
>"2010-01-22"
这不是:
as.Date("22MAR2010", format="%d%b%Y")
>NA
它打破了MAR,MAY,OCT 适用于JAN,FEB,APR,JUN,JUL,AUG,SEP,NOV,DEC。
巧合的是,我的Windows 7操作系统语言是荷兰语,日期缩写为MAA,MEI,OKT。但那些人也不会工作。
答案 0 :(得分:-1)
您可以找到内置数据对象将识别的月度缩写: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
控制。 '{1}}项的核心应该由strptime
使用'LC_TIME'项的特定值。
(as.Dat.character
函数有2个命名参数“category”和“locale”,这就是使用Sys.setlocale
的第一个建议失败的原因。它似乎也是我眼中典型的R语法,因为通常的旋风形式主义并没有引用这些名字。我多次犯了这个错误。)