【发布时间】:2015-11-25 07:08:27
【问题描述】:
美好的一天!我正在尝试使用 this 日期选择器对话框制作日期选择器。现在我在设置 defaultDate 选项时遇到问题,它需要 NSDate 所以我做了这个。
let date = NSDate()
let formatter1 = NSDateFormatter()
formatter1.dateFormat = "MMM dd"
formatter1.timeZone = NSTimeZone(abbreviation: "GMT")
formatter1.timeZone = NSTimeZone(forSecondsFromGMT: 28800)
let gmt8TimeZone = formatter1.stringFromDate(date)
let dateToday = formatter1.dateFromString(gmt8TimeZone)
print("\(gmt8TimeZone) - \(dateToday!)")
DatePickerDialog().show("Choose Date", doneButtonTitle: "Done", cancelButtonTitle: "Cancel", defaultDate: dateToday!, datePickerMode: UIDatePickerMode.Date) { (date) -> Void in
self.dateSelected = date
self.showTimePicker()
}
问题是,它不是从我设置的defaultDate 开始的,即dateToday。所以我所做的是打印日期字符串gmt8TimeZone 和dateToday 它给了我Nov 25 - 2000-11-24 16:00:00 +0000 为什么给我不同的日期?应该是一样的吧?我做错了什么?
【问题讨论】:
-
从日期中提取的字符串并打印 nsdate 对象本身会给出不同的值,我猜是因为 NSDate 对象采用默认的 +0000 GMT。
-
@LEVIS OGCPAS 为什么要更改时区?
-
用户提交的所有日期必须是从GMT+8开始,用户的手机时区不同,所以我想统一一下。
-
@LEVISOGCPAS 你不需要这样做。 NSDate 不存储时区,只使用默认的本地时间显示它
标签: swift swift2 xcode7 nsdateformatter