将12小时的角色时间转换为24小时

时间:2015-04-23 20:19:48

标签: r

我有一个数据集,其中包含字符格式的时间。我试图将其从12小时格式转换为24.我已经做了一些搜索,但我发现的所有内容似乎都假设这些字符已经是24小时格式。这是我正在与之合作的一个例子。

times <- c("9:06 AM", "4:42 PM", "3:05 PM", "12:00 PM", "3:38 AM")

2 个答案:

答案 0 :(得分:19)

这应该有效:

times <- c("9:06 AM", "4:42 PM", "3:05 PM", "12:00 PM", "3:38 AM")

strptime(times, "%I:%M %p")

## [1] "2015-04-23 09:06:00 EDT" "2015-04-23 16:42:00 EDT"
## [3] "2015-04-23 15:05:00 EDT" "2015-04-23 12:00:00 EDT"
## [5] "2015-04-23 03:38:00 EDT"

如果你只想要时间:

format(strptime(times, "%I:%M %p"), format="%H:%M:%S")
## [1] "09:06:00" "16:42:00" "15:05:00" "12:00:00" "03:38:00"

答案 1 :(得分:4)

times <- c("9:06 AM", "4:42 PM", "3:05 PM", "12:00 PM", "3:38 AM")
print(as.POSIXct(times, format='%I:%M %p'))

[1] "2015-04-23 09:06:00 CDT" "2015-04-23 16:42:00 CDT" "2015-04-23 15:05:00 CDT" "2015-04-23 12:00:00 CDT"
[5] "2015-04-23 03:38:00 CDT"

@Tyler - 你输入的速度比我快。 To Topic Starter - 请查看CDT和EDT是如何根据您的时区自动填充的 - 这可能是在一天内更改后1小时内转换时间的问题