私は変換しようとしている有効なDate()オブジェクトを持っています。私は他のSOの投稿を見てきましたが、私のコードでそれをやるべきだと思われます:有効なSwift 4 Dateオブジェクトが "HH:mm"にフォーマットされたときに "00:00"を返します
private func getHoursMinutesString(date:Date) -> String
{
let formatter = Foundation.DateFormatter()
formatter.dateFormat = "HH:mm"
return formatter.string(from: date)
}
しかし、返される時間は常に "00:00"です。新しいDate()オブジェクトを入れると、正しい時刻が返されます。私はあなたが見ることができたDate()オブジェクトに何が間違っているのだろうかと思います。ここでは、データのlldbプリントアウトです:
あなたが見ることができるように、フォーマッタが有効なオブジェクトです。日付(私は思う)は有効な日付オブジェクトです。フォーマッタを通過すると "00:00"になりますが、新しいDate()オブジェクトで正常に動作します。
date
オブジェクトに不適切な形式または不足が目立つものはありますか?それとも、私のフォーマッタに足りない一歩がありますか?
更新調査を行った後、タイムゾーンを設定すると問題が解決されます。なぜ、私は知らない!
あなたの出力を使用して、UTCから5時間を生きると仮定が正しいです。 'date'は現地時間の深夜です。 – rmaddy
Hmm ah ok。私は05:00を見ていたので変わったようでした。私はタイムスタンプから05:00を得ることを期待していました。 – Aggressor
午前5時です(+0000はUTCを意味します)。デフォルトでは、DateFormatterには現地時間での値が表示されます。 – rmaddy