我有一个格式为的日期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(使用前将#替换为@)