POSIXct 从 12 小时时间戳中去除秒数
POSIXct Strips Seconds from 12-hour Timestamp
我正在尝试将 12 小时时间戳转换为 R 中的 POSIXct 对象。出于某种原因,它会在转换后去掉秒数。
## timestamp
chk = '17-MAY-16 04.51.34.000000000 PM'
## convert
as.POSIXct(chk, format = '%d-%b-%y %I.%M.%S.%OS %p', tz = 'America/New_York')
[1] "2016-05-17 16:51:00 EDT"
我做错了什么吗?
它不去掉秒数。它只是遵循 打印和格式化 的默认设置 不 包括亚秒。
举个例子
- 实际上有亚秒条目
- 在
options(digits.secs)
设置正确的会话中运行
- 更正了您在格式字符串中遇到的一个错误
演示:
R> options(digits.secs=6) # important to tell R we want subsecs
R> input <- '17-MAY-16 04.51.34.123456 PM'
R> as.POSIXct(input, '%d-%b-%y %I.%M.%OS %p', tz = 'America/New_York')
[1] "2016-05-17 16:51:34.123456 EDT"
R>
如果我们重置 digits.secs=0
,它会回退到仅整秒(对于许多设置来说,这毕竟是一个很好的默认值,尽管有人可能会争辩说 %0S
可以覆盖它...)
R> options(digits.secs=0) # reset
R> as.POSIXct(input, '%d-%b-%y %I.%M.%OS %p', tz = 'America/New_York')
[1] "2016-05-17 16:51:34 EDT"
R>
另请注意格式字符串的细微变化。不要同时使用 %S
和 %OS
。
我正在尝试将 12 小时时间戳转换为 R 中的 POSIXct 对象。出于某种原因,它会在转换后去掉秒数。
## timestamp
chk = '17-MAY-16 04.51.34.000000000 PM'
## convert
as.POSIXct(chk, format = '%d-%b-%y %I.%M.%S.%OS %p', tz = 'America/New_York')
[1] "2016-05-17 16:51:00 EDT"
我做错了什么吗?
它不去掉秒数。它只是遵循 打印和格式化 的默认设置 不 包括亚秒。
举个例子
- 实际上有亚秒条目
- 在
options(digits.secs)
设置正确的会话中运行 - 更正了您在格式字符串中遇到的一个错误
演示:
R> options(digits.secs=6) # important to tell R we want subsecs
R> input <- '17-MAY-16 04.51.34.123456 PM'
R> as.POSIXct(input, '%d-%b-%y %I.%M.%OS %p', tz = 'America/New_York')
[1] "2016-05-17 16:51:34.123456 EDT"
R>
如果我们重置 digits.secs=0
,它会回退到仅整秒(对于许多设置来说,这毕竟是一个很好的默认值,尽管有人可能会争辩说 %0S
可以覆盖它...)
R> options(digits.secs=0) # reset
R> as.POSIXct(input, '%d-%b-%y %I.%M.%OS %p', tz = 'America/New_York')
[1] "2016-05-17 16:51:34 EDT"
R>
另请注意格式字符串的细微变化。不要同时使用 %S
和 %OS
。