2

UTC タイムスタンプがあります。でYYYY/MM/DD形式に変換したいR

たとえば、1318394558766. formatコマンドの試行に失敗しました。

どんな助けでも大歓迎です。

ありがとう!

4

3 に答える 3

9

as.POSIXctまたはを使用できますas.POSIXlt。ただし、ミリ秒数が開始された元の日付を知る必要があります。

as.POSIXct(1318394558766/1000, origin='1970-01-01')

> unlist(as.POSIXlt(1318394558766/1000, origin='1970-01-01'))
    sec     min    hour    mday     mon    year    wday    yday   isdst 
 38.766  42.000  21.000  11.000   9.000 111.000   2.000 283.000   1.000 
> 

format次に、目的の YYYY/MM/DD を取得するために使用できます。

format(as.POSIXct(1318394558766/1000, origin='1970-01-01'), format='%Y/%m/%d')
于 2012-06-27T20:12:20.547 に答える
2

ジャスティンの答えに加えて(そして私はコメントできないため)、変換に tz を追加することをお勧めします。

as.POSIXct(1318394558766/1000, origin='1970-01-01')
[1] "2011-10-12 05:42:38 EST"
as.POSIXct(1318394558766/1000, origin='1970-01-01', tz="UTC")
[1] "2011-10-12 04:42:38 UTC"

詳細については、次を参照してください。

?timezone
于 2012-06-28T03:47:03.490 に答える
2

さらに別の解決策は、次を使用すること.POSIXctです。

utc <- .POSIXct(1318394558766/1000, tz="UTC")

utc次に、日付または文字ベクトルに簡単に変換できます。

as.Date(utc)            # Date vector
format(utc, "%Y-%m-d")  # character vector
于 2012-06-28T22:07:12.707 に答える