如何自定义 DatePickerDialog 以在文本中显示自定义日期? - Swift
How to customize the DatePickerDialog to show custom date in the text? - Swift
我正在尝试更改 datePickerDialog 中写入的日期,以将回历设为伊斯兰日期。
我找到了将回历日期显示为 NSDateComponents 的功能
func hijriDate(dateToConvert: NSDate) -> NSDateComponents{
let islamic = NSCalendar(identifier:NSCalendarIdentifierIslamicCivil)!
let hijriComponents = islamic.components(NSCalendarUnit(rawValue: UInt.max), fromDate: dateToConvert)
print("Date in system calendar:\(dateToConvert), in Hijri:\(hijriComponents.year)-\(hijriComponents.month)-\(hijriComponents.day)")
return hijriComponents
//"Date in system calendar:2014-09-25 09:53:00 +0000, in Hijri:1435-11-30"
}
所以当 datePicker 将打印日期时,我想通过将 NSDate 转换为 Hijri 组件来显示伊斯兰组件。
那么有什么方法可以显示 datePickerDialog 的自定义文本吗?所以我可以使用上面的函数从 NSDate 打印回历日期 ?
更新:
我目前使用的DatePickerDialog是这样的:
let STR_DATE_FORMAT = "EEEE d, MMM yyyy"
DatePickerDialog().show("Select date".localized(), doneButtonTitle: "OK".localized(), cancelButtonTitle: "Cancel".localized(), datePickerMode: .Date, defaultDate:self.data.event_date ) {
(date) -> Void in
self.data.event_date = date
self.event_date.text = date.toString(format: .Custom(STR_DATE_FORMAT)) as String
}
如下设置日期选择器的日历,
datePicker.calendar = NSCalendar(identifier:NSCalendarIdentifierIslamicCivil)!
结果看起来像,
我正在尝试更改 datePickerDialog 中写入的日期,以将回历设为伊斯兰日期。
我找到了将回历日期显示为 NSDateComponents 的功能
func hijriDate(dateToConvert: NSDate) -> NSDateComponents{
let islamic = NSCalendar(identifier:NSCalendarIdentifierIslamicCivil)!
let hijriComponents = islamic.components(NSCalendarUnit(rawValue: UInt.max), fromDate: dateToConvert)
print("Date in system calendar:\(dateToConvert), in Hijri:\(hijriComponents.year)-\(hijriComponents.month)-\(hijriComponents.day)")
return hijriComponents
//"Date in system calendar:2014-09-25 09:53:00 +0000, in Hijri:1435-11-30"
}
所以当 datePicker 将打印日期时,我想通过将 NSDate 转换为 Hijri 组件来显示伊斯兰组件。
那么有什么方法可以显示 datePickerDialog 的自定义文本吗?所以我可以使用上面的函数从 NSDate 打印回历日期 ?
更新:
我目前使用的DatePickerDialog是这样的:
let STR_DATE_FORMAT = "EEEE d, MMM yyyy"
DatePickerDialog().show("Select date".localized(), doneButtonTitle: "OK".localized(), cancelButtonTitle: "Cancel".localized(), datePickerMode: .Date, defaultDate:self.data.event_date ) {
(date) -> Void in
self.data.event_date = date
self.event_date.text = date.toString(format: .Custom(STR_DATE_FORMAT)) as String
}
如下设置日期选择器的日历,
datePicker.calendar = NSCalendar(identifier:NSCalendarIdentifierIslamicCivil)!
结果看起来像,