如何将y%m%d%H
格式转换为"%Y%m%d %H:%M:%S"
。我的约会时间是从1970年到2010年。
答案 0 :(得分:6)
部分来自评论(如果您可以相应地修改问题会很好),似乎这不是格式化(%y
vs %Y
或间距/分隔符)的情况,但strptime
/ POSIX*t
会自动设置格式,以便在指定“午夜”时间时跳过小时/分钟/秒。 (这是我目前基于以下示例的猜测,但我可能错过了一些东西。)
%y
,非午夜时间:
> str(strptime("00020304",format="%y%m%d%H"))
POSIXlt[1:1], format: "2000-02-03 04:00:00"
同上,午夜时间:
> str(strptime("00020300",format="%y%m%d%H"))
POSIXlt[1:1], format: "2000-02-03"
午夜时间(有空格)
> str(strptime("00 02 03 00",format="%y %m %d %H"))
POSIXlt[1:1], format: "2000-02-03"
一个有一个午夜和一个非午夜时间的向量:
> str(strptime(c("00020300","00020304"),format="%y%m%d%H"))
POSIXlt[1:2], format: "2000-02-03 00:00:00" "2000-02-03 04:00:00"
所以看起来Dirk的答案是要走的路。
答案 1 :(得分:2)
试试这个:
R> Sys.Date()
[1] "2012-07-23"
R> format(Sys.Date())
[1] "2012-07-23"
R> format(Sys.Date(), "%Y-%m-%d %H:%M:%S")
[1] "2012-07-23 00:00:00"
R>
因为您可能有Date
类型,根据定义,它没有小时/分钟/秒信息 - 请使用POSIXct
。请参阅help(DateTimeClasses)
详细信息,以及此处和各种邮件列表中的大量帖子以及工作示例。