我有格式的日期dd-mm-yyyy HH:mm:ss
什么是验证此日期的最佳和最简单的方法?
我试过了
d <- format.Date(date, format="%d-%m-%Y %H:%M:%S")
Run Code Online (Sandbox Code Playgroud)
但是,如果通过非法日期,我怎么能抓住错误?
Jan*_*ary 11
简单方法:
d <- try( as.Date( date, format= "%d-%m-%Y %H:%M:%S" ) )
if( class( d ) == "try-error" || is.na( d ) ) print( "That wasn't correct!" )
Run Code Online (Sandbox Code Playgroud)
说明: format.Date使用as.Date内部转换date为Date类的对象.但是,它不使用格式选项,因此as.Date使用默认格式,%Y-%m-%d然后使用%Y/%m/%d.
在format从选项format.Date仅用于输出,而不是解析.引用as.Date手册页:
'as.Date'方法接受字符串,因子,逻辑'NA'和类'POSIXlt''和''POSIXct''的对象.(在指定时区(默认UTC)的时间表示中,忽略午夜之后的时间将最后一个转换为天数.)此类对象的类别为"日期"(来自包'日期')和''日期''(来自'chron'包裹).根据指定的格式处理字符串:忽略任何尾随字符.
但是,当您as.Date使用格式规范直接调用时,除了适合您的格式之外,不允许任何其他内容.
另见:?as.Date