2017-04-26 2 views
1

に私は結果がタイムスタンプは、スウィフト

1493199752604.24 

得られた値はミリ秒単位で右にあるように見えるこのコード

let currentDate = Date().timeIntervalSince1970 * 1000 

に迅速に現在の時刻を決定するのですか?値の中に.は何ですか?

私は2つのそのような日付の差が2時間より等しいか大きいかどうかを決定する必要があります。

if (currentDate - oldDate >= 7200000){ 
// do something 
} 

このコードは正しいですか?

+0

のvarタイムスタンプである場合:文字列{ リターン "(。NSDate()timeIntervalSince1970 * 1000)\" } *「'.'値内の」神秘*が' timeIntervalSince1970'は*浮動小数点を返すことを示してそのタイムスタンプ –

+3

よう コールこの*番号(プロパティ名のドキュメントから、またはコマンドクリックして見ることができるようXcodeで)。 –

+0

TimeIntervalは秒単位ですので、 '.'の後ろに小数部があります。 – Kubba

答えて

0

Swiftより多くのメリットをご利用ください。 dateComponentsの使用で時間差を取得してみてください。

let calendar = NSCalendar.current 

let hours = calendar.dateComponents([.hour], from: Date(), to: Date()) 
+0

let calendar = NSCalendar.current let hours = calendar.dateComponents([。hour]、from:Date()、to:oldDate)これは、現在の日付とoldDateの時間差を計算します。たとえば、差が2日の場合、結果は48となります。 –

+0

@ J.Doeはいそうです –

0

はい正常です。 2時間

let currentDate = Date().timeIntervalSince1970*1000 
let calendar = NSCalendar.current 
let yesteraysDate = calendar.date(byAdding: .day, value: -1, to: Date()) 
let oldDate = yesteraysDate!.timeIntervalSince1970*1000 
if (currentDate - oldDate >= 7200000){ 
    print("greater or equal than two hour") //"greater or equal than two hour" 
} else { 
    print("smaller than two hour") 
} 

よりも大きな違いをチェックアウトこの例 違いは、2時間未満

let currentDate = Date().timeIntervalSince1970*1000 
let calendar = NSCalendar.current 
let yesteraysDate = calendar.date(byAdding: .hour, value: -1, to: Date()) 
let oldDate = yesteraysDate!.timeIntervalSince1970*1000 
if (currentDate - oldDate >= 7200000){ 
    print("greater or equal than two hour") 
} else { 
    print("smaller than two hour") //"smaller than two hour"" 
}