UIDatePicker显示错误的时间

时间:2018-11-27 13:26:07

标签: swift timezone uidatepicker

我正在尝试将minimumDate设置为日期选择器,但显示时日期选择器会增加+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 :(得分:0)

我想您可能使用了错误的日期格式化程序来转换从服务器接收的日期。
从服务器收到的时间是字符串吗?
如果是字符串,则设置哪个时区?
您必须在解析之前将其考虑在内,通常服务器会返回一个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

如果不是这种格式,则可能必须考虑时区或夏令时。

相关问题