การแปลงค่าในคอลัมน์ Date Time เป็นรูปแบบทั่วไป [ซ้ำกัน]

Aug 18 2020

ฉันมี dataframe พร้อมคอลัมน์ที่มีค่า Date Time แต่ค่าอยู่ในรูปแบบที่แตกต่างกัน ฉันต้องการนำพวกเขาทั้งหมดไปยังรูปแบบ "dd / mm / yyyy hh: mm" ฉันลองใช้แพ็คเกจ lubridate เพื่อแปลงวันที่ด้วยข้อความ AM / PM ที่ต่อท้ายวันที่ แต่ไม่สามารถทำได้

Date_Time
"11/01/2019 10:00"      
"11/01/2019 11:00"      
"11/01/2019 12:00"      
"11/01/2019 13:00"      
"11/01/2019 14:00"      
"11/01/2019 15:00"      
"11/01/2019 16:00"      
"10/03/2019 23:00"      
"10/04/2019 1:00"
"10/28/2019 05:00:00 AM"
"10/28/2019 10:00:00 PM"
"10/29/2019 02:00:00 AM"
"10/29/2019 03:00:00 AM"
"10/31/2019 01:00:00 PM"
"10/31/2019 02:00:00 PM"
"10/31/2019 10:00:00 PM"

คำตอบ

1 RonakShah Aug 18 2020 at 18:56

คุณสามารถใช้lubridate's parse_date_time:

lubridate::parse_date_time(df$Date_Time, c('mdYHM', 'mdYIMSp'))
#[1] "2019-11-01 10:00:00 UTC" "2019-11-01 11:00:00 UTC" "2019-11-01 12:00:00 UTC"
#[4] "2019-11-01 13:00:00 UTC" "2019-11-01 14:00:00 UTC" "2019-11-01 15:00:00 UTC"
#[7] "2019-11-01 16:00:00 UTC" "2019-10-03 23:00:00 UTC" "2019-10-04 01:00:00 UTC"
#[10]"2019-10-28 05:00:00 UTC" "2019-10-28 22:00:00 UTC" "2019-10-29 02:00:00 UTC"
#[13]"2019-10-29 03:00:00 UTC" "2019-10-31 13:00:00 UTC" "2019-10-31 14:00:00 UTC"
#[16]"2019-10-31 22:00:00 UTC"

ข้อมูล

df <- structure(list(Date_Time = c("11/01/2019 10:00", "11/01/2019 11:00", 
"11/01/2019 12:00", "11/01/2019 13:00", "11/01/2019 14:00", "11/01/2019 15:00", 
"11/01/2019 16:00", "10/03/2019 23:00","10/04/2019 1:00","10/28/2019 05:00:00 AM",
"10/28/2019 10:00:00 PM", "10/29/2019 02:00:00 AM", "10/29/2019 03:00:00 AM", 
"10/31/2019 01:00:00 PM", "10/31/2019 02:00:00 PM", "10/31/2019 10:00:00 PM"
)), class = "data.frame", row.names = c(NA, -16L))