UIDatePicker показывает неверное время - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь установить минимальное значение DatePicker, но средство выбора даты добавляет +1 час при отображении.

Я подозреваю, что часовой пояс Datepicker отличается от firstPossibleOrderTime .

Я получаю это от api: 20181127151122.

Затем используйте модуль SwiftyDate для даты инициации.

    DateInRegion(firstPossiblePickup, format: "yyyyMMddHHmmss",
    region: .currentIn()). 

    let datePickerFrame = UIDatePicker(frame: .zero)
    datePickerFrame.locale = Locale.init(identifier: "nb")


    print(self.firstPossibleOrderTime.date)
    print(self.firstPossibleOrderTime.date.add(28.days))

    datePickerFrame.minimumDate = self.firstPossibleOrderTime.date
    datePickerFrame.maximumDate = self.firstPossibleOrderTime.date.add(28.days)

Как я могу запретить DatePicker увеличивать время на 1 час?

1 Ответ

0 голосов
/ 27 ноября 2018

Я предполагаю, что, вероятно, вы используете неправильный форматер даты для преобразования даты, которую вы получаете от сервера.
Является ли время, которое вы получаете от сервера, строкой?
Если это строка, в которойчасовой пояс установлен?
Вы должны принять это во внимание, прежде чем анализировать его, обычно серверы возвращают en_US_POSIX строку даты, которую можно проанализировать с помощью этого средства форматирования даты.

 let dateFormatter = DateFormatter()
        dateFormatter.locale = Locale(identifier: "en_US_POSIX")
        dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'"
        dateFormatter.isLenient = false

Если этоне в этом формате, вы, вероятно, должны учитывать часовой пояс или переход на летнее время.

...