2011-08-09 7 views

答えて

5

私は、年を上げるのではなく、適切な秒数を追加することで、秒をUnixのエポック時間(1970年以降)に調整することをお勧めします。私は肯定的ではありませんが、私の本能は、年自体が跳躍することが間違っている(閏年とカレンダーの小さな調整などを含む)場合があると私に伝えます。

2001年1月1日から秒数秒を追加する必要がある場合、探している番号は+978307200です。たとえば、millisが必要な場合は、1000を掛けるだけです。 例として、AppleとUnixのエポック日付を検出する必要のあるコードがあります。これは、エポックから数秒で数秒で検出され、Unixのエポックから数百万秒コンストラクタ:

// Earlier than 1985 in Unix, must be Apple 
if(date < 473410800) { 
    m.date = new Date((date + 978307200L) * 1000); 
} else { 
    m.date = new Date(date * 1000); 
} 
+1

ココアの日付が473410800より大きい日付のしきい値を超えました。このコードのチェックはうまくいかないです。私はあなたが持っている番号の種類を把握する必要がある場合、あなたが働いている日付範囲について考えるために私の以前の答えを調整するだろう。 変換自体はまだ正しいです。 – Kelly

+0

戻ってきてくれてありがとう、このケリーを訂正するのに4年後!それは素晴らしいです! – eric

関連する問題