如何将 12 小时时间戳(不是日期时间,仅时间)转换为 24 小时时间?
How to convert a 12 hour time stamp (NOT a datetime, time only) to 24 hour time?
我有一个包含 12 小时制时间的 字符 列,例如:2:59:00 PM,4:35:00 AM,6:00:00 PM等
如何使用 lubridate(或其他函数)将这些时间转换为 24 小时制?我尝试使用 HMS 函数,但它只是去掉了 AM/PM 而没有实际将时间转换为 24 小时制...
编辑: 我尝试了这个 post 的答案:
这是我的代码:lab_data[LAB_TM_test:=format(strptime(LAB_TM, "%I:%M %p"), format="%H :%M:%S")]
但这会导致我的专栏全部变成 NA,并给我这个警告:
”警告信息:
在 strptime(LAB_TM, "%I:%M %p") 中:
检测到 strptime() 用法并用 as.POSIXct() 包装。这是为了最大限度地减少分配 POSIXlt 列的机会,POSIXlt 列使用 40 多个字节来存储一个日期(而 POSIXct 为 8 个字节)。使用 as.POSIXct()(它将根据需要在内部调用 strptime())来避免此警告。"
EDIT2: 这是我的专栏的样子,它是一个字符专栏:
c("2:59:00 下午", "4:35:00 上午", "6:00:00 下午", "6:00:00 下午", "6:00:00 下午",
“6:00:00 下午”,“6:00:00 下午”,“6:00:00 下午”,“5:35:00 上午”)
尝试
lab_data[,LAB_TM_test:=as.POSIXct(LAB_TM, format='%I:%M:%S %p')]
这是一个 base R 解决方案,使用 strptime
转换为 24 小时制,strftime
仅打印时间。
df$LAB_TM_new <- strftime(strptime(df$LAB_TM, format="%I:%M:%S %p"), format="%H:%M:%S")
df
LAB_TM LAB_TM_new
1 2:59:00 PM 14:59:00
2 4:35:00 AM 04:35:00
3 6:00:00 PM 18:00:00
4 6:00:00 PM 18:00:00
5 6:00:00 PM 18:00:00
6 6:00:00 PM 18:00:00
7 6:00:00 PM 18:00:00
8 6:00:00 PM 18:00:00
9 5:35:00 AM 05:35:00
我有一个包含 12 小时制时间的 字符 列,例如:2:59:00 PM,4:35:00 AM,6:00:00 PM等
如何使用 lubridate(或其他函数)将这些时间转换为 24 小时制?我尝试使用 HMS 函数,但它只是去掉了 AM/PM 而没有实际将时间转换为 24 小时制...
编辑: 我尝试了这个 post 的答案:
这是我的代码:lab_data[LAB_TM_test:=format(strptime(LAB_TM, "%I:%M %p"), format="%H :%M:%S")]
但这会导致我的专栏全部变成 NA,并给我这个警告:
”警告信息: 在 strptime(LAB_TM, "%I:%M %p") 中: 检测到 strptime() 用法并用 as.POSIXct() 包装。这是为了最大限度地减少分配 POSIXlt 列的机会,POSIXlt 列使用 40 多个字节来存储一个日期(而 POSIXct 为 8 个字节)。使用 as.POSIXct()(它将根据需要在内部调用 strptime())来避免此警告。"
EDIT2: 这是我的专栏的样子,它是一个字符专栏:
c("2:59:00 下午", "4:35:00 上午", "6:00:00 下午", "6:00:00 下午", "6:00:00 下午", “6:00:00 下午”,“6:00:00 下午”,“6:00:00 下午”,“5:35:00 上午”)
尝试
lab_data[,LAB_TM_test:=as.POSIXct(LAB_TM, format='%I:%M:%S %p')]
这是一个 base R 解决方案,使用 strptime
转换为 24 小时制,strftime
仅打印时间。
df$LAB_TM_new <- strftime(strptime(df$LAB_TM, format="%I:%M:%S %p"), format="%H:%M:%S")
df
LAB_TM LAB_TM_new
1 2:59:00 PM 14:59:00
2 4:35:00 AM 04:35:00
3 6:00:00 PM 18:00:00
4 6:00:00 PM 18:00:00
5 6:00:00 PM 18:00:00
6 6:00:00 PM 18:00:00
7 6:00:00 PM 18:00:00
8 6:00:00 PM 18:00:00
9 5:35:00 AM 05:35:00