如何在 R 中验证日期

2024-05-04

我有一个格式为的日期dd-mm-yyyy HH:mm:ss验证该日期的最佳和最简单的方法是什么?

I tried

d <- format.Date(date, format="%d-%m-%Y %H:%M:%S")

但是当非法日期过去时如何捕获错误呢?


简单的方法:

d <- try(as.Date(date, format="%d-%m-%Y %H:%M:%S"))
if("try-error" %in% class(d) || is.na(d)) {
  print("That wasn't correct!")
}

解释: format.Date uses as.Date内部转换date进入一个对象Date班级。但是,它不使用格式选项,因此as.Date使用默认格式,即%Y-%m-%d进而%Y/%m/%d.

The format选项来自format.Date仅用于输出,不用于解析。引用自as.Date手册页:

‘as.Date’方法接受字符串、因素、逻辑 “NA”以及类“POSIXlt”和“POSIXct”的对象。 (这 最后通过忽略午夜之后的时间转换为天数 指定时区的时间表示,默认 UTC。)还有类“date”的对象(来自包“date”)和 ‘“dates”’(来自‘chron’包)。字符串被处理 根据指定格式的需要:任何尾随 字符被忽略。

但是,当您直接调用as.Date有了格式规范,除了适合您的格式之外,其他任何内容都不会被允许。

See also: ?as.Date

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 R 中验证日期 的相关文章

随机推荐