【问题标题】:Convert date without leading zeros in lubridate在 lubridate 中转换没有前导零的日期
【发布时间】:2022-11-30 00:53:56
【问题描述】:

我有格式的日期

"7-10-2013 10:18"

但是,当我尝试与他们一起使用 lubridate::as_date 时,我收到此警告

Warning message:
All formats failed to parse. No formats found.

我认为这是因为日期没有前导零。 在这种情况下如何使用lubridate

【问题讨论】:

  • strptime("7-10-2013 10:18", format = '%d-%m-%Y %H:%M')怎么样?您的日期不明确(月份是美国风格的 7,还是日期,就像大多数其他地方的风格?)
  • 您可以尝试 lubridate::mdy_hm("7-10-2013 10:18")lubridate::dmy_hm("7-10-2013 10:18"),具体取决于哪种格式(美国/非美国)

标签: r datetime tidyverse lubridate


【解决方案1】:

您可以将日期时间格式作为向量传递给parse_date_time

library(lubridate)
#> 
#> Attaching package: 'lubridate'
#> The following objects are masked from 'package:base':
#> 
#>     date, intersect, setdiff, union

dat <- '7-10-2013 10:18'

parse_date_time(dat, "mdy HM")
#> [1] "2013-07-10 10:18:00 UTC"

创建于 2022-11-29 reprex v2.0.2

【讨论】:

    【解决方案2】:

    我们可以使用Dirk Eddelbuettel's anytime package

    anytime::anytime("7-10-2013 10:18")
    
     # [1] "2013-07-10 10:18:00 EDT"
    

    或者只是在base

    strptime("7-10-2013 10:18", format = "%m-%d-%Y %H:%M")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      • 2012-12-09
      • 1970-01-01
      • 1970-01-01
      • 2014-10-12
      相关资源
      最近更新 更多