【问题标题】:How can I explain to lubridate which locale it should use?我如何解释 lubridate 它应该使用哪个语言环境?
【发布时间】:2019-11-18 10:12:30
【问题描述】:

我无法让它工作,请有人告诉我出了什么问题吗?在具有德语语言环境的 Windows 上。

library(lubridate)
library(dplyr)
t0 <- "Dienstag, 19. Februar 2019 12:49:06"
t0 %>% parse_date_time(orders="ymd",locale="German_Germany.1252")
t0 %>% parse_date_time(orders="ymd",locale="de-DE.utf-8")
t0 %>% parse_date_time(orders="ymd")

这些都不起作用...我认为 parse_date_time 应该让这样的事情变得更容易。 还是我必须指定格式“%H %M %s”等? 有没有一个包可以像这样解析输入而不必指定每个细节?

Sys.getlocale() 的输出:

LC_COLLATE=German_Germany.1252;LC_CTYPE=German_Germany.1252;LC_MONETARY=German_Germany.1252;LC_NUMERIC=C;LC_TIME=German_Germany.1252

【问题讨论】:

    标签: r date parsing time lubridate


    【解决方案1】:

    我认为您的语言环境已经是德语。尝试将as.POSIXct 与适当的format 一起使用

    as.POSIXct(t0, format = "%A, %d. %B %Y %T", tz = "UTC")
    

    例如,这适用于我的英语语言环境

    t1 <- "Tuesday, 19. February 2019 12:49:06"
    as.POSIXct(t1, format = "%A, %d. %B %Y %T", tz = "UTC")
    #[1] "2019-02-19 12:49:06 UTC"
    

    parse_date_time 这似乎工作

    lubridate::parse_date_time(t1, "dmYT")
    #[1] "2019-02-19 12:49:06 UTC"
    

    【讨论】:

    • 谢谢,一切都很完美。那么 parse_date_time 的“orders”参数是这种情况的罪魁祸首吗?我没有从错误消息中意识到这一点。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 2012-05-07
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多