2017-01-09 6 views
0

私は興味深い何かに気づいたときに次の日を取ろうとしていました。私がしたとき現在の日付のNSDateが異なっていますか?

let date = NSDate() 
let calender = NSCalendar.current 
let components = calender.dateComponents([.year, .month, .day], from: date as Date) 
    dateLabel.text = "\(components.month!)/\(components.day!)/\(components.year!)" 

私は欲しい、現在の日付です。

しかし、私は現在の日付と私のプリントで

@IBAction func nextDate(_ sender: UIButton) { 

    var oneDayfromNow: NSDate { 
     return NSCalendar.current.date(byAdding: .day, value: 1, to: NSDate() as Date)! as NSDate 
    } 
    print("Current Date: \(calender)") 
    print(oneDayfromNow) 
} 

を行うとき、私は実際に次の日の日付を取得し、私のoneDayfromNow変数が2日、今から日付です。要するに、私の2つのブロックの現在の日付は異なっています。

なぜ誰かが私に説明することができますか?あなたが、私は似たような認識に使用される知っている

おかげ

答えて

0

は、Appleデベロッパのウェブサイトからの引用である程度NSDate

NSDateオブジェクトは、任意の 特定の暦のシステムやタイムゾーンとは無関係に、時間内の単一のポイントをカプセル化します。 Dateオブジェクトは、 絶対参照日付(2001年1月1日00:00:00 UTC)に対する不変時間間隔を表す、 不変です。

したがって、特定の地域で時間を指定するのではなく、特定の時間を示す不透明なオブジェクトであることを意味します。 NSDateFormatterは、日付を書式設定し、必要な時間帯に表示するのは、むしろNSDateFormatterの役割です。

0

。すべて私のDateの値は常に8時間先です(私はカリフォルニア北部に住んでいます)。 「ISO 8601」と呼ばれる

チェックアウト何かを

ISO 8601 - Wikipedia

あなたはズールー族の時間または何今UTC(協定世界時は、私が思う座標)として知られているに精通している場合、私は知りませんが、それはですタイムゾーンを無視する普遍的な時間。

あなたはおそらく正しい日時を取得しているに違いありません。ちょうどUTCに反映されています。ここで

関連する問題