读取带有小数秒和 AM/PM 的时间

标签 r datetime posixct

这可能是一个非常基本的问题,但是如何将带有小数秒的日期时间 AM/PM 指示器读取到 R 中?

> x <- "2014/10/20 3:00:49.324 PM"

> as.POSIXct(x, format="%Y/%m/%d %H:%M:%S")
[1] "2014-10-20 03:00:49 MYT"                   # wrong; should be 15:00:49

> as.POSIXct(x, format="%Y/%m/%d %I:%M:%S")
[1] "2014-10-20 03:00:49 MYT"                   # wrong; should be 15:00:49

> as.POSIXct(x, format="%Y/%m/%d %H:%M:%S %p")
[1] NA

> as.POSIXct(x, format="%Y/%m/%d %I:%M:%S %p")
[1] NA

如果我将其更改为 24 小时格式,就没有问题,如果我删除小数秒,也没有问题。

> x <- "2014/10/20 15:00:49.324"
> as.POSIXct(x, format="%Y/%m/%d %H:%M:%S")
[1] "2014-10-20 15:00:49 MYT"

> x <- "2014/10/20 3:00:49 PM"
> as.POSIXct(x, format="%Y/%m/%d %I:%M:%S %p")
[1] "2014-10-20 15:00:49 MYT"

最佳答案

对于小数秒,请使用 %OS 格式(它没有详细记录,但它是 ?strptime 中的示例之一) 。您还应该记住在与 %p 结合使用时使用 %I (而不是 %H)。另外,如果需要,请不要忘记设置 tz

as.POSIXct("2014/10/20 3:00:49.324 PM", format = "%Y/%m/%d %I:%M:%OS %p")
## "2014-10-20 15:00:49 IDT"

关于读取带有小数秒和 AM/PM 的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28849835/

相关文章:

r - 像在 gtable 中一样制作 ggplot 面板背景

python - pytz 和 astimezone() 不能应用于天真的日期时间

r - ifelse()从时间戳向量中剥离POSIXct属性?

r - 如何将 RStudio 删除干净 (Windows)?

r - 获取列表示非零数据

r - 将循环内的行名分配给构造的变量名称

r - 从字符到日期/时间的转换返回 NA

javascript - 如何在 JavaScript 中添加、递增 native 时间变量

c# - 是否有可以处理从现在到公元前 12,000 年的日期的 C# 日期时间库?

r - 如何在 cat 函数中正确使用 as.POSIXct 函数