#swift #date #dateformatter
Вопрос:
Я использую средство выбора даты, чтобы изменить дату в своем приложении.
До сих пор это работает нормально, но теперь я пытаюсь отобразить дату, выбранную в данный момент в окне выбора даты DateFormatter
. Это код, который у меня не работает:
let strDate = "02. November 2020"
let formatter = DateFormatter()
formatter.dateformat = "dd. MMMM yyyy"
formatter.locale = Locale(identifier: "de")
formatter.timeZone = TimeZone.current
let date = formatter.date(from: strDate)
// output here is 2020-11-01 23:00:00 UTC
let strTemp = formatter.string(from: date)
// output here is 02. November 2020
Как вы можете видеть, выходная строка с «неправильной» даты все еще верна, поэтому я не замечал этого до сих пор.
Проблема сейчас в том, что на DatePicker
дисплее отображается 01. Ноябрь 2020 года, а не 02. Ноябрь 2020 года.
Может ли кто-нибудь указать мне правильное направление?
Комментарии:
1. Я думаю, это из-за некоторых проблем с вашим часовым поясом и разницы между utc и cest (для Германии).
2. вы можете установить часовой пояс самостоятельно, как
formatter.timeZone = TimeZone(abbreviation: "UTC")
это даст вам «2020-11-02 00:00:00 0000»3. «дата, выбранная в данный момент» , почему это экземпляр строки, а не экземпляр даты?
4. Дата указана правильно.
2020-11-01 23:00:00 UTC
и2020-11-02 00:00:00 0100
находятся в один и тот же момент времени. Учтите, что