以小数秒和 AM/PM 读取时间
Reading in a time with fractional seconds and AM/PM
这可能是一个非常基本的问题,但我如何将带小数秒的日期时间 和 一个 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 指示器读入 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"