【问题标题】:Setting date for datepicker taking into account daylight saving Swift考虑到夏令时 Swift 为 datepicker 设置日期
【发布时间】:2016-04-17 14:53:47
【问题描述】:

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

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

这看起来不错……但是……

我将日期存储在具有 var dateForLog: NSDate 的 Singleton 类中,在另一个视图控制器中,我会将这个日期保存到核心数据中...

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

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

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

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

如何阻止这种情况发生?

【问题讨论】:

  • 尝试添加“formatter.locale = NSLocale.systemLocale()”
  • 在进行了更多搜索后,我发现了这个可能会解决我的问题的问题....stackoverflow.com/questions/26189656/…... 我现在遇到的问题是已发布的答案给了我一个 Instance member 'cal ' 不能用于 ViewController 类型
  • 所有排序...我已经使用了上面找到的解决方案...我只需将代码放在函数中而不是直接放入类中。

标签: swift date datepicker


【解决方案1】:

在进行了更多搜索后,我发现了这个解决了我的问题....How can I set an NSDate object to midnight?...

【讨论】:

    猜你喜欢
    • 2018-02-04
    • 2011-08-14
    • 2021-01-21
    • 2012-09-08
    • 2014-06-01
    • 2013-09-22
    • 1970-01-01
    • 2015-10-24
    • 2011-12-27
    相关资源
    最近更新 更多