如何自定义 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)!

结果看起来像,