gpt4 book ai didi

R 用外语转换日期时间格式不起作用

转载 作者:行者123 更新时间:2023-12-05 03:28:17 24 4
gpt4 key购买 nike

我正在尝试使用包 parsedate 将几种不同的日期时间格式解析/转换为统一/同类格式问题是有些日期将是英语(我的机器语言),有些将使用西类牙语,请允许我举例说明:

我有两个向量:

#English dates
dates<-c("2016 jun 15 8:39 p.m","2016 apr 2 8:39 a.m","2016 dec 2 8:39 a.m")
#Spanish dates
fechas<-c("2016 junio 15 8:39 p.m","2016 abril 2 8:39 a.m","2016 diciembre 2 8:39 a.m")

我注意到函数 parse_date() 正确地将向量 dates 转换为所需的输出格式,但是当尝试用西类牙语日期解析向量时它不起作用即使将本地时间更改为“西类牙语”,如下所示:

#Parsing english dates
parsedate::parse_date(dates)

> parsedate::parse_date(dates)
[1] "2016-06-15 08:39:00 UTC" "2016-04-02 08:39:00 UTC" "2016-12-02 08:39:00 UTC"


#Parsing spanish dates
Sys.setlocale("LC_TIME", "Spanish")
parsedate::parse_date(fechas)

> Sys.setlocale("LC_TIME", "Spanish")
[1] "Spanish_Spain.1252"
> parsedate::parse_date(fechas)
[1] "2016-01-15 08:39:00 UTC" "2016-01-02 08:39:00 UTC" "2016-01-02 08:39:00 UTC"

西类牙语输出是错误的,因为它应该在英语日期中返回相同的输出,我已经尝试了几种方法来正确地将我的机器的本地时间更改为西类牙语,但没有成功。
如果你能帮助我,我将不胜感激。

最佳答案

请参阅此处 https://github.com/tidyverse/lubridate/issues/781

Sys.setlocale("LC_TIME", "Spanish_Spain.1252")
format <- "%a@%A@%b@%B@%p@"
enc2utf8(unique(format(lubridate:::.date_template, format = format)))
str(lubridate:::.get_locale_regs("Spanish_Spain.1252"))
library(lubridate)

Sys.getlocale("LC_TIME")
[1] "Spanish_Spain.1252"

parse_date_time(fechas, 'ymd HM')
[1] "2016-06-15 08:39:00 UTC" "2016-04-02 08:39:00 UTC" "2016-12-02 08:39:00 UTC"

关于R 用外语转换日期时间格式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71278155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com