UIDatePicker的日期无法正确打印

时间:2018-07-25 18:52:20

标签: swift uidatepicker

我有一个日期选择器,在它上面有1个按钮,显示为“完成”。单击此按钮后,我将打印日期选择器日期。

当我滚动日期选择器和打印日期时,它可以正常工作。下面是我的代码

print("date selected===\(myDatePicker.date)")

当我不滚动日期选择器并单击完成按钮时,就会出现问题。

方案是我将datepicker maximumDate设置为2000年(currentYear-18)。下面是我使用的代码。

var dayComp = DateComponents()
currDate = Date()
dayComp.year = -18
currDate = calendar.date(byAdding: dayComp, to: currDate)!
mDateFrom.maximumDate = currDate

现在,由于datepicker可以追溯到18年,所以我看到日期选择器的日期为2000年7月25日,但是当我单击“完成”按钮时,它仅打印今天的日期。

只有当我滚动日期选择器时,它才能给出正确的日期。

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

我相信,一旦您基于所需的日期创建了datePicker,就需要设置日期选择器显示的默认日期。因为此属性的default value是创建UIDatePicker对象的日期,所以这就是为什么只要打印日期选择器的值而不会旋转,它就会向您显示当前日期,但是如果您旋转datePicker,该属性已正确设置,可以正确打印日期。

 //you can use date property to set or get  
 myDatePicker.date = yourFormattedDateHere

如果不希望在设置日期时出现任何动画,请通过将轮子旋转到新的日期和时间来设置date属性动画 date picker ,请使用setDate(_:animated:)方法,为动画参数传递false。