我正在嘗試使用該包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"
西班牙語輸出是錯誤的,因為它應該在英語日期中回傳相同的輸出,我嘗試了幾種方法將我的機器的本地時間正確更改為西班牙語,但沒有運氣。
如果您能幫助我,我將不勝感激。
uj5u.com熱心網友回復:
見這里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"
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/434263.html
