问题描述
我正在将日期转换为日期,但如果我只是 println() 在日期选择器中选择当前日期,我会得到错误的时间和日期.
@IBOutlet weak var datepicker: UIDatePicker! @IBAction func displayDay(sender: AnyObject) { var chosenDate = self.datepicker.date println(chosenDate)
我已经选择了日期.
然后单击日期选择器下方的按钮.我在输出中得到以下行
2015-01-11 20:17:37 +0000
谁能告诉我.输出有什么问题?
推荐答案
这很好,因为日期选择器使用其本地时间,但它存储 UTC 时间.这意味着您的本地时间偏移量是-5h.您可以执行以下操作以从中提取正确的日期和时间:
extension NSDate { var localizedDescription: String { return descriptionWithLocale(NSLocale.currentLocale()) ?? "" } } println(chosenDate.localizedDescription)<小时>
Swift 3 或更高版本
extension Date { var localizedDescription: String { return description(with: .current) } }<小时>
Date().localizedDescription // "Monday, October 16, 2017 at 2:24:11 AM Brasilia Summer Time"