2016-08-20 8 views
2
let timestamp = (NSDate().timeIntervalSince1970) 
let date = NSDate(timeIntervalSinceReferenceDate: (timestamp)) 

print(NSDate()) // 2016-08-20 18:24:17 +0000 
print(timestamp) // 1471717652.15506 
print(date)  // 2047-08-21 18:24:17 +0000 

タイムスタンプを一貫させるにはどうしたらいいですか?日付をタイムスタンプに変換しようとしましたが、日付に変換すると日付に一貫性がありません

+1

あなたが本当に一致していない投稿コードを示して出力。 2つのエポックは31年ごとに異なるため、第1および第3印刷ステートメントには、1日ではなく31年の異なる日付が表示されます。 – rmaddy

+1

@rmaddy:2016-08-20と2047-08-21は31年で違います:) –

+1

@MartinR Ugh。読解障害を読む。 – rmaddy

答えて

5

あなたの質問は完全には明らかではありませんが、最初と最後の文が同じであることを確認してください。printそれが真であると仮定すると、同じエポックを使用するには、第1行または第2行のコードを修正する必要があります。

1行目は「1970」エポックを使用しています。 2行目は、Cocoaの「参照日付」エポックを使用しています。彼らは同じではありません。 2つの行の一方を他方に一致するように変更します。

あなたが欲しいのいずれか:

let timestamp = (NSDate().timeIntervalSinceReferenceDate) 
let date = NSDate(timeIntervalSinceReferenceDate:timestamp) 

か:

let timestamp = (NSDate().timeIntervalSince1970) 
let date = NSDate(timeIntervalSince1970:timestamp) 
関連する問題