使用as.POSIXct使用R转换日期

时间:2017-03-12 23:30:34

标签: r date time

我正在使用日期和R,我正在使用as.POSIXct函数转换日期。通过查看?strptime文档,我对如何转换日期非常了解。但是我很困惑为什么这个特定的转换不能按预期工作(见下文)。

date_string <- "03/11/2017, 3:14:32 pm"
as.POSIXct(date_string, format = "%m/%d/%Y, %H:%M:%S",tz="PST8PDT")

> [1] "2017-03-11 03:14:32 PST" 

这次转换我失去了12个小时的时间,我期待着这个......

> [1] "2017-03-11 15:14:32 PST"

我尝试使用'%r'和我的格式,但总是给我NA?有人可以解释一下R在这里做了什么,以及为什么它不按预期转换这个日期字符串?

1 个答案:

答案 0 :(得分:3)

两个错误:

  • 您使用了%H,希望%I用于可怕的12小时格式
  • 您省略了%p来抓住“pm”标记

经过纠正:

R> date_string <- "03/11/2017, 3:14:32 pm"
R> as.POSIXct(date_string, format = "%m/%d/%Y, %I:%M:%S %p",tz="PST8PDT")
[1] "2017-03-11 15:14:32 PST"
R>