在R中将字符转换为12H时间格式

时间:2016-04-01 01:56:14

标签: r

我需要将时间“01:15:55 AM”转换为时间。 我在考虑使用chron库,但是我不知道如何使用chron库。

chron(times = "01:15:55 AM", format = "%I:%M:%S %p")
Error in parse.format(format) : unrecognized format %I:%M:%S %p

有什么想法吗?我很高兴尝试其他图书馆

3 个答案:

答案 0 :(得分:3)

一个选项是使用strptime来解析,然后使用format结果,这样你就可以将它变成一个漂亮的chron::times对象:

library(chron)
times(format(strptime("01:15:55 PM", format = "%I:%M:%S %p"), "%H:%M:%S"))
# [1] 13:15:55

答案 1 :(得分:1)

在R中处理日期和时间对象的规范方法是使用POSIX函数,例如:

> (time.POSIX<-strptime("01:15:55 AM", format = "%I:%M:%S %p"))
[1] "2016-03-31 01:15:55 BRT"
> class(time.POSIX)
[1] "POSIXlt" "POSIXt" 

strptime函数以及与POSIX日期一起使用的所有其他函数(例如format(用于打印))接受您正在使用的格式字符串。 这里的问题是这个数据不是时间本身,而是日期和时间,日期部分隐含地创建为&#34;今天&#34;。因此,您可以在固定的参考日期创建此时间对象,例如,2000-01-01。

另一方面,如果您想使用chron软件包......它们不符合这些格式规范。 chron手册仅指定m,d,y,h,m和s。

您可能必须编写一个了解AM / PM并修复它的包装器。

答案 2 :(得分:1)

{{1}}