如何将y%m%d%H
格式转换为"%Y%m%d %H:%M:%S"
. 我的日期从 1970 年到 2010 年。
问问题
17135 次
2 回答
6
部分来自评论(如果您可以相应地修改问题会很好),这似乎不是格式化(%y
vs%Y
或间距/分隔符)的情况,而是strptime
/POSIX*t
自动设置格式以跳过小时/分钟/seconds 当指定“午夜”时间时。(这是我目前基于以下示例的猜测,但我可能遗漏了一些东西。)
,%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"
所以看起来德克的答案是要走的路。
于 2012-07-23T15:21:05.920 回答
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)
详细信息,并在此处以及带有工作示例的各种邮件列表上发布大量帖子。
于 2012-07-23T14:24:05.010 回答