我有一个日期选择器,模式设置为日期(我只对日,月,年感兴趣)。日期在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
如何阻止这种情况发生?