2017-05-04 14 views
-1

なぜ以下が適切な時間を返さないのか分かりますか?DateFormatterが間違って変換されています

let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm" 
let date = dateFormatter.date(from: "2017-05-04 15:00") 
print(date) 

それは、私はそれがタイムゾーンに関係していると思いOptional(2017-05-04 13:00:00 +0000) を返します。なぜサーバー上でtimeZoneを知る必要があるのですか?

値を変換したいだけです。この行を追加すること

+0

あなたはGMT + 2タイムゾーンです。あなたの地域の15:00は13:00 UTCです。すべてが正しい! –

+0

私は見ていますが、サーバはすでに私のタイムゾーンで私に適切な時間を与えています。したがって、私はちょうどタイムゾーン補正なしで変換する必要があります。 –

+4

「日付」は絶対時刻であり、タイムゾーンはありません。日付の印刷(またはその「説明」の取得)は、常にUTCゾーンを使用します。あなたの日付**は**正しいです。 "2017-05-04 13:00:00 +0000"は、GMT + 2ゾーンの "2017-05-04 15:00"と同じ時点です。 –

答えて

-1

試してみてください。

dateFormatter.locale = Locale(identifier: "en_US_POSIX") 
関連する問題