【问题标题】:Getting an NA with abbreviated month format for as.Date in Spanish locale在西班牙语语言环境中为 as.Date 获取带有缩写月份格式的 NA
【发布时间】:2021-06-04 00:52:42
【问题描述】:

我的课程是西班牙语。当我有一个完整的月份名称格式 (%B) 时,我得到正确的日期:

as.Date("01-Febrero-2021", format = "%d-%B-%Y")
# [1] "2021-02-01"

但是,当我尝试使用缩写月份 (%b) 时,我得到一个“NA”:

as.Date("01-Feb-2021", format = "%d-%b-%Y")
# [1] NA

as.Date("01-feb-2021", format = "%d-%b-%Y")
# [1] NA

as.Date("01-FEB-2021", format = "%d-%b-%Y")
# [1] NA

我做错了什么?

感谢 G. Grothendieck 的回答,我可以让它工作:

Sys.getlocale("LC_TIME")
# [1] "Spanish_Argentina.1252"

Sys.Date上使用format查看缩写月份时,发现月份是用句号写的:

format(Sys.Date(), "%b")
# [1] "feb."

尝试解析一个字符串,这次用句点:

as.Date("01-feb.-2021", format = "%d-%b-%Y")
# [1] "2021-02-01"

有效!

【问题讨论】:

标签: r date locale as.date


【解决方案1】:

它对我有用。确保您实际上是在西班牙语言环境中。 (我在 Windows 上,它在其他平台上的工作方式可能有所不同。)

Sys.setlocale("LC_TIME", "English")
## [1] "English_United States.1252"
Sys.getlocale("LC_TIME")
## [1] "English_United States.1252"

format(Sys.Date(), "%b")
## [1] "Feb"

现在改为西班牙语:

Sys.setlocale("LC_TIME", "Spanish")
## [1] "Spanish_Spain.1252"
Sys.getlocale("LC_TIME")
## [1] "Spanish_Spain.1252"

format(Sys.Date(), "%b")
## [1] "feb"

as.Date("01-feb-2021", format="%d-%b-%Y")
## [1] "2021-02-01"
as.Date("01-Feb-2021", format="%d-%b-%Y")
## [1] "2021-02-01"

【讨论】:

  • 谢谢!!你的回答帮助了我。我必须使用“二月”。或“Feb.”,末尾有一个点。我编辑了我的问题来解释这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-24
  • 2020-12-28
  • 1970-01-01
  • 1970-01-01
  • 2020-02-24
相关资源
最近更新 更多