如何自定义DatePickerDialog以在文本中显示自定义日期? - 斯威夫特

时间:2016-03-06 07:08:10

标签: swift nsdate ios9 datepickerdialog

我正在尝试更改datePickerDialog中写入的日期以使Hijri伊斯兰日期。

我发现将Hijri日期显示为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打印日期为Hijri?

更新

我使用的当前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
}

1 个答案:

答案 0 :(得分:4)

将日期选择器的日历设置如下,

  datePicker.calendar = NSCalendar(identifier:NSCalendarIdentifierIslamicCivil)!

结果如下,

enter image description here