2012-10-10 195 views
1

我經常從Oracle讀取數據到R。爲了解決我的一些表格中的TIMESTAMP格式,我在我的SQL語句中以TO_CHAR作爲字符串讀入列。將Oracle時間戳轉換爲R中的日期/時間

但是,我想將字符串中保存的數據轉換回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。

任何幫助將不勝感激!

+1

有人能告訴我這個問題如何得到一個downvote?真? – Btibert3

回答

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也不是(澳大利亞)東部標準時間。