繁体   English   中英

as.Date 在西班牙语言环境中带有点的缩写月份 (%b)

[英]as.Date on abbreviated month (%b) with dot in Spanish locale

我对 R 和 Windows 中的短月份缩写有疑问。

我刚刚将我的 PC 更新到 Windows 10,Windows 的本地设置是西班牙语,但 R 用英语重新配置(我想)。

我有一些日期格式为*"%b %d, %Y"*和西班牙语的数据,所以如果日期是January 1st 2018 ,它将写成***ene 1, 2018***

在更新 Windows 之前,我将日期设置为:

as.Date("ene 1, 2018", format = "%b %d, %Y")

反过来又返回

“2018-01-01”

正如预期的那样。

更新后,我在阅读这种日期格式时遇到问题,所以如果我查看sessionInfo() ,它会显示 LC_TIME=C。 我用Sys.setlocale("LC_TIME","Spanish")把它改成了西班牙语

现在,如果我写format(as.Date('2018-01-01'), "%b %d, %Y")我得到

“2018 年 1 月 1 日”*

(请注意短月份名称后有一个点)

我想删除ene 中的点。 因为我的日期是没有点的,所以现在处理的日期给了我NA

有点有趣的是,在我的代码中添加Sys.setlocale("LC_TIME","Spanish")然后运行它,我得到的日期列很好。 但是如果我第二次运行它,我会得到NA 因此,如果我想再次运行代码以获取日期和报告(使用 R Markdown),我需要重新启动 R 而不会出错。

我应该使用什么配置? 或者这个问题有其他解决方案吗?

如果我写sessionInfo()我得到:

语言环境:LC_COLLATE=Spanish_Chile.1252 LC_CTYPE=Spanish_Chile.1252 LC_MONETARY=Spanish_Chile.1252 LC_NUMERIC=C LC_TIME=Spanish_Spain.1252

谢谢!

我用替换解决了这个问题,找不到更好的解决方案,我很累

import locale
    
listaFechasTeorico2 = list()

locale.setlocale(locale.LC_TIME, "Spanish")

date.strftime('%b-%Y').replace(".","")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM