2013-06-21 31 views

Trả lời

7

Đọc ?strptime. %p, chỉ hoạt động với %I, không phải %H. Định dạng thời gian của bạn cũng không đúng. Thời gian của bạn được phân tách bằng ".", không phải là ":".

as.POSIXct("19-Jun-13 06.00.00.00 PM", format="%d-%b-%y %I.%M.%OS %p") 
+0

đó là cách lấy dữ liệu. Tôi cần phải chuyển đổi này để dấu thời gian trong R. câu trả lời của bạn đã không làm việc cho tôi. – user1471980

+1

@ user1471980: Tôi nhận ra bạn nhận được dữ liệu với thời gian được phân tách bằng '". "' Và đó là lý do tại sao bạn phải sử dụng định dạng với '"% I.% M.% OS "' thay vì '"% I:% M: Hệ điều hành "'. Điều gì về câu trả lời của tôi đã không hoạt động? Nó chuyển đổi chuỗi, '" 19-Jun-13 06.00.00.00 PM "' thành đối tượng 'POSIXct'. –

+0

Tôi nhận được điều này khi tôi thực hiện các đề xuất của bạn 2013-06-19, tôi cần giờ và giây. – user1471980

0

Tôi không understad lý do tại sao strptime không nhận dạng đúng định dạng %p. Tuy nhiên, chức năng dmy_hms từ gói lubridate hoạt động tốt.

lubridate::dmy_hms("19-Jun-13 06.00.00.00 PM") tạo ra kết quả sau đây:

[1] "2013-06-19 18:00:00 UTC"

mà bạn có thể "định dạng lại" nếu bạn muốn, nói Y-m-d H: M:

as.POSIXct(dmy_hms("19-Jun-13 06.00.00.00 PM"), format="%Y-%m-%d %H:%M") [1] "2013-06-19 18:00:00 UTC"

Các vấn đề liên quan