嗨,谢谢你阅读我的文章。我试图将字符串转换为r中的日期时间格式,但我找不到方法,因为年份只取最后两位数字("22"而不是"2022"(,我不知道如何修复它。
字符串是";23/8/22 12:45";我试过:
as.Date("23/8/22 12:45", format ="%m/%d/%Y" )
和
as_datetime(ymd_hm("23/8/22 12:45"), format ="%m/%d/%Y")
但它不起作用。有人知道我该怎么修吗?感谢的帮助
as.Date
只返回日历日期,因为类Date
对象只显示为日历日期。
除了POSIXct,您还可以使用lubridate包中的parse_date_time
:
library(lubridate)
parse_date_time("23/8/22 12:45", "dmy HM", tz="") #dmy - day, month, year HM - hour, minute
# Or the second function:
dmy_hm("23/8/22 12:45",tz=Sys.timezone())
正如评论中所提到的,您需要使用"%d/%m/%y";以正确解析字符串中的日期。但是,如果您想要日期时间格式(在基本r中,这通常是用POSIXct类完成的(,则可以使用as.POSIXct("23/8/22 12:45", format = "%d/%m/%y %H:%M")
。这将确保您保留字符串中有关时间的信息。