2017-04-03 4 views
1

フォーマット中:私は日付フォーマッタを使用しているDateオブジェクトとしてそれをモデル化するために好奇心振る舞い、私は次のようなJSONから日付の文字列表現取得しています日付

let dateString = "2016-12-31T00:10:00+01:00" 

を以下のようなので:

私は日にそれを回す
let dateForm = DateFormatter() 
dateForm.locale = Locale(identifier: "fr_FR") 
dateForm.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ" 
dateForm.timeZone = TimeZone.current 

、私の遊び場出力は正しいです:

let date = dateForm.date(from: dateString) 

=> O utput: "2016年12月31日、12:10 AM"

しかし、私はこの正確な同じオブジェクト(日付)を印刷しようとする場合、私は次の出力を得る:

print(date!) 

=>出力:「2016- 12-30 23:10:00 +0000 \ n "

私の質問は、私が正しい日付を扱っていることを確認するにはどうすればいいですか(ローカルタイムゾーン(GMT + 01) )?

+0

あなたの文字列の日付が 'UTC + 1:00'であるため、あなたの時刻が変更されています。 –

答えて

0

日付出力2016-12-30 23:10:00 +0000を印刷した場合、あなたのGMTは+00:00 ですが、日付から文字列を取得する場合、それはあなたの特定のフォーマットとLocale(fr_FRの)出力2016-12-31T00:10:00+01:00あたりとして文字列を返しますし、あなたのGMTが+01:00 です(あなたのGMT)

あなたのケース

で -

日付出力=あなたの文字列の日付は、文字列から日付にしたいです0

2016-12-30 23:10:00 = 2016-12-31 00:10:00 - (+01:00) 
関連する問題