考虑到夏令时Swift,设置datepicker的日期

时间:2016-04-17 14:53:48

标签: swift date datepicker

我有一个日期选择器,模式设置为日期(我只对日,月,年感兴趣)。日期在viewDidLoad中设置

    let currentDate = NSDate()
    dp_MainDatePicker.date = currentDate
    dp_MainDatePicker.maximumDate = currentDate

这似乎没问题......但是......

我将日期存储在具有var dateForLog: NSDate的Singleton类中,而在另一个viewcontroller中,我将此日期保存到核心数据...

newMileageLog.setValue(Data.sharedData.dateForLog, forKey: "tripDate")

然后我最终在TableViewCell中显示日期......

//format date as medium style date
let formatter = NSDateFormatter()
formatter.dateStyle = .MediumStyle
let logDateString = formatter.stringFromDate(mileageLog.tripDate!)

cell.lb_LogDate.text = logDateString

不幸的是,这没有考虑到夏令时......例如。

如果datepicker设置为2016年1月14日,则tableviewcell中的日期为2016年1月14日

如果datepicker我们设置为2016年4月14日,则tableviewcell中的日期为4月 13 ,2016年。如果我放置断点,我可以看到即使拨号设置为2016年4月14日dateForLog正在显示2016-04-13 23:00:00 +0000

如何阻止这种情况发生?

1 个答案:

答案 0 :(得分:0)

在做了一些搜索之后,我遇到了解决我问题的问题.... How can I set an NSDate object to midnight? ...