2017-08-07 13 views
0

ここで誰かが何が起こっているのか知りたいと思っています。日時をUNIX時刻に変換する

> foo <- '4/1/2017 00:02:23' 
> alpha = as.POSIXct(foo) 
> alpha 
[1] "0004-01-20 LMT" 
> beta = as.numeric(alpha) 
> beta 
[1] -62039347125 #Why?!?!?! 

だから基本的に、私は上記と通過する:私はいくつかの日付を変換しようとしているこの奇妙な問題を抱えている/私は負の数を取得するUNIX時間の時間は、ここに参照のための私のコードです私は負の数で終わりますが、迷惑なことは、私が使っている日付/時刻に関係なく、私は同じ結果で終わるということです。日付/時刻の形式は、月/日/年時:分:秒です。

何が起こっているのか知っていますか?助けていただければ幸いです。

答えて

1

Unixの時間が始まる前の4年、すなわち1966年を使用していることに注目してください。あなたはする必要があります:

foo <- '2017/4/1 00:02:23' 
alpha = as.POSIXct(foo) 
alpha 

## "2017-04-01 00:02:23 EDT" 

beta = as.numeric(alpha) 
beta 

## 1491019343 
+0

ありがとうございましたが、私は形式を変更する立場には本当にないのですが、それは大丈夫です私の問題を解決した議論(私の答えを見てください)。ありがとう!! – MathsIsHard

+0

良い!私は自分の投稿を編集して 'format'について教えていた。あなたがそれを理解してうれしいです。 –

0

私はそれを理解しました。あなたはとても

...日付時刻の形式を指定する必要があります:私は「形式」を発見した、

> foo <- '4/1/2017 00:02:23' 
> alpha = as.POSIXct(foo, format = '%m/%d/%Y %H:%M:%S') 
> beta = as.numeric(alpha) 
> beta 
[1] 1491001343 
関連する問題