我经常将Oracle
的数据读入R
。为了绕过某些表中的TIMESTAMP
格式,我在SQL语句中以TO_CHAR
作为字符串读入列。
但是,我想将字符串中保存的数据转换回R可以使用的日期+时间格式。不幸的是,我不知道如何做到这一点,特别是考虑到AM / PM组件。剥离日期很容易,但我不知道如何保留每条记录的时间部分。
以下是一些数据记录:
c("31-JUL-12 10.08.35.432 AM", "31-JUL-12 08.53.18.316 AM", "18-JUL-12 01.17.52.939 PM",
"13-AUG-12 05.34.11.405 PM", "15-AUG-12 02.04.31.505 PM", "21-AUG-12 09.10.03.976 AM"
)
一个注意事项:这些数据是时区EST。
任何帮助将不胜感激!
答案 0 :(得分:6)
如果你处理日期/时间很多,你应该熟悉?strptime
> strptime(oracle, format='%d-%b-%y %I.%M.%OS %p', tz='America/New_York')
[1] "2012-07-31 10:08:35.432 EDT" "2012-07-31 08:53:18.316 EDT" "2012-07-18 13:17:52.939 EDT" "2012-08-13 17:34:11.405 EDT" "2012-08-15 14:04:31.505 EDT" "2012-08-21 09:10:03.976 EDT"
请注意,我认为“EST”你真正意味着东部时间在纽约,纽约。来自help(timezone)
:
请注意,其中一些名称可能与您的想法不同:特别是EST是加拿大使用的时区,没有夏令时,而不是EST5EDT和(澳大利亚)东部标准时间。