-1

这有效:

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。但那些也不起作用。

4

1 回答 1

-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。应该使用“LC_TIME”项的特定值,strptime它是as.Dat.character函数的核心。

(该Sys.setlocale函数有 2 个命名参数“category”和“locale”,这就是第一个使用建议Sys.setlocale(LC_TIME = "en_GB.UTF-8")失败的原因。在我看来,这似乎也是典型的 R 语法,因为通常的配对列表形式不引用名称。我多次犯过这个错误。)

于 2017-02-24T16:15:46.350 回答