2017-11-14 7 views
2

APIエンドポイントの日付値から日付コンポーネントを取得しようとしています。彼らはすでにタイムゾーンのために調整されているので、私は日付の値を保持する必要があります。残念ながら、私はAPIが日付の値を返す方法を制御することはできません。DateComponentsがタイムゾーンで更新されないようにする方法

私はAPIから日付値(sessionTime)を取得すると、以下のように、それが返されます。

2017-12-05 08:00:00 +0000 

私は抽出しようとしたとき、私は、しかし、その時間に基づいて、ローカル通知を設定する必要があります次のコードでその日付オブジェクトからコンポーネント:

year: 2017 month: 12 day: 5 hour: 2 minute: 0 second: 0 isLeapMonth: false 

let notifyTime = Calendar.current.dateComponents(
    [.year, .month, .day, .hour, .minute, .second], from: sessionTime) 

私はこの取得します10

GMTから6時間ですので、何が起こっているのかはっきりしていますが、私はそれを防ぐことができ、日付コンポーネントを正確に抽出することができれば幸いです。希望する出力は次のようになります。

year: 2017 month: 12 day: 5 hour: 8 minute: 0 second: 0 isLeapMonth: false 

誰でも手助けできますか?ありがとう!

答えて

1

DateComponentsが使用するtimeZoneを指定できます。このよう

let notifyTime = Calendar.current.dateComponents(in: TimeZone.current, from: sessionTime) 
関連する問題