在西班牙语语言环境中获取 as.Date 的缩写月份格式的 NA
Getting an NA with abbreviated month format for as.Date in Spanish locale
我的课程是西班牙语。当我使用包含完整月份名称 (%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"
有效!
对我有用。确保您实际上位于西班牙语言环境中。 (我在 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"
我的课程是西班牙语。当我使用包含完整月份名称 (%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"
有效!
对我有用。确保您实际上位于西班牙语言环境中。 (我在 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"