los*_*eka 4 r date rounding posixct
我想将POSIXct舍入到相对于特定时区的那一天.
如果我试试
round(as.POSIXct("2013-03-05 23:00:00 EST"), "day")
Run Code Online (Sandbox Code Playgroud)
它回来了
2013-03-06
Run Code Online (Sandbox Code Playgroud)
这是有道理的,因为当它在EST5EDT的2013-03-05美国东部时间23:00:00时,它已经是2013-03-06 UTC.从逻辑上讲,我想做的是:
round(as.POSIXct("2013-03-05 23:00:00 EST"), "day", tz="EST5EDT")
Run Code Online (Sandbox Code Playgroud)
也就是说,"将此日期和时间舍入到最近的一天,相对于EST5EDT时区".不幸的是,round不采用时区参数.
round一旦过了中午,它将会转到第二天,这就是为什么我认为你会看到2013-03-06.我还必须tz在调用中明确设置参数as.POSIXct
注意:
round( as.POSIXct("2013-03-05 11:00:00" , tz = "EST" ), "day" )
[1] "2013-03-05 EST"
Run Code Online (Sandbox Code Playgroud)
然后一旦中午过去:
round( as.POSIXct("2013-03-05 12:00:00" , tz = "EST" ), "day" )
[1] "2013-03-06 EST"
Run Code Online (Sandbox Code Playgroud)
调用将日期format提取为不带tz参数的字符串.因此,您可以在没有时区的情况下获得原始结果
format( round( as.POSIXct("2013-03-05 12:00:00" , tz = "EST" ), "day" ) )
[1] "2013-03-06"
Run Code Online (Sandbox Code Playgroud)
如果你想圆的那一天的任何时间的那一天也许你想要什么,而不是为trunc?
format(trunc( as.POSIXct("2013-03-05 12:00:00" , tz = "EST" ), "day" ))
[1] "2013-03-05"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1559 次 |
| 最近记录: |