0

Unix 時間は 1435617000 です。

as.Date(1435617000,origin="01-01-1970")
[1] "3930586-11-23"

これは間違っています。(a) 正しい日付を取得しようとしています。これは、エポック コンバーターごとにGMT: Mon, 29 Jun 2015 22:30:00 GMT.

Rに月、日、年、時、分、秒を教えてもらうにはどうすればよいですか? ありがとうございました。

4

1 に答える 1

3

その理由は、as.Date引数をクラスの日付オブジェクトに変換するためだと思います。この場合、入力であるベクトルには管理できない他の情報が含まれPOSIXctているため、日付ではなくクラス オブジェクトが必要です。適切な関数を使用しても発生する可能性のある別の問題は、引数で適切なタイム ゾーンを指定しない場合です(タイム ゾーンが元の時間と同じ場合を除く)。xas.Datetz

次のコードはその仕事をします。

x <- 1435617000
as.POSIXct(x, origin = "1970-01-01", tz ="GMT")
[1] "2015-06-29 22:30:00 GMT"

使用するas.Date

日付だけが必要で、 のような完全な Unix 時間がある場合は、(1 日の秒数です!) でx割るだけで正しい日付だけを取得できます。86400

 as.Date(x/86400L, origin = "1970-01-01")
[1] "2015-06-29"

もう一つの重要な詳細

origin議論は提供されなけれYYYY-MM-DDばならず、あなたがしたようDD-MM-YYYYにはわかりませんが、前者が唯一受け入れられた正しい方法だと思います。

于 2015-07-23T19:43:29.183 に答える