如何将y%m%d%H
格式转换为"%Y%m%d %H:%M:%S"
。我的日期运行从1970年到2010年如何在时间序列数据中将y%m%d%H格式转换为“%Y%m%d%H:%M:%S”
回答
试试这个:
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)
的详细信息,并且bazillion在此处和各种邮件列表上列出工作示例。
%Y%m% d%H与这种格式的工作,但格式是%y%m%d%H例如00010100(2000010100) – user1537175 2012-07-23 14:32:51
根据我的测试以下它不是说OP有'Date'类型,而不是'POSIX * t当它在午夜时间有一个日期时,似乎将格式设置为跳过H/M/S。 – 2012-07-23 15:21:52
这也是可能的,但是因为他从来没有通过可复制的例子告诉我们,我们不能说真的,我们可以吗? – 2012-07-23 15:24:22
从注释部分去(这将是很好,如果你可以相应地修改问题),似乎这不是格式化(%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"
与一种midn的载体ight和一个非午夜时间:
> 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"
所以它看起来像德克的答案是要走的路。
日期< - strptime(Z $ V1,格式= “%Y%M%d%H”,TZ = “GMT”) – user1537175 2012-07-23 14:18:17
使用'strptime'或'format' – Andrie 2012-07-23 14:19:34
你上面所建议的是什么,似乎对我的工作:作为一个小例子(提示,见http://tinyurl.com/reproducible-000):'strptime(“2012 5 10 13”,format =“%Y%m%d%H”)''给出'[1 ]“2012-05-10 13:00:00”' – 2012-07-23 14:23:04