5

lubridate真夜中から数秒単位で移動する方法を示す投稿があります。午前 0 時からの秒数から時刻への移行はどうですか?

では、06:52:32 を使用して 24752.05 を取得する代わりに、24752.05 を使用して 06:52:32 を取得するにはどうすればよいでしょうか?

4

4 に答える 4

8

as.POSIXct()真夜中のタイムスタンプとオフセットの合計に 使用します。場合によっては、TZを設定して調整します。

私のデフォルトのタイムゾーンでは:

R> as.POSIXct(trunc(Sys.time(), units="days") + 24752.05)
[1] "2013-01-16 06:52:32.04 CST"
R> 

答えは(前の質問と同じように)ベースRでうまく解決できることに注意してください。これは、質問のたびに耐えられない潤滑剤を使用する必要があるという噂が根強いことです。

于 2013-01-16T22:34:19.390 に答える
4

別のオプション:

format(as.POSIXct('1900-1-1') + 24752.05, '%H:%M:%S')
# [1] "6:52:32"
于 2013-01-16T22:39:30.510 に答える
3

lubridate多様性のためだけに使用する:

library(lubridate)

Sys.time() + seconds(24752.05)

または深夜から:

as.Date(Sys.time()) + seconds(24752.05)
于 2013-01-16T22:36:30.620 に答える
3

もちろん、時間、分、秒を直接計算することもできます。これは、POSIX 時間の定義に基づいています。真夜中の値は常にtime_tで割り切れ86400ます。

x <- 24752.05

paste(sprintf("%02d", floor(x / 3600)),
      sprintf("%02d", floor(x %% 3600 / 60)),
      sprintf("%02d", floor(x %% 60 )),
      sep=":"
)
## [1] "06:52:32"
于 2013-01-16T23:17:26.733 に答える