2016-07-14 12 views
0

私はイスラムカレンダーを使って日付を表示するUIDatePickerを持っています。 datePickerは値を正しい形式で表示しています。しかし、ユーザー選択をUITextFieldに割り当てると、残念なことに、それと同等の日付がグレゴリオ暦の形式で表示されます。どのようにしてこれを変えてイスラムのカレンダーと同等のものを表示できますか?ここでSwiftのUIDatePickerから適切な形式でカレンダーを表示できません

は、関連するコードです:

//The below code is what displays the dates from the Islamic calendar in the UIDatePicker (and works correctly): 
let islamicCalendar = NSCalendar.init(calendarIdentifier: NSCalendarIdentifierIslamic) 
let components: NSDateComponents = NSDateComponents() 
components.calendar = islamicCalendar 
components.year = 10 
let currentDate = NSDate() 
let maxDate: NSDate = islamicCalendar!.dateByAddingComponents(components, toDate: currentDate, options: [])! 
self.datePicker?.calendar = islamicCalendar 
self.datePicker?.minimumDate = NSDate() 
self.datePicker?.maximumDate = maxDate 

これは、ユーザーの選択に変換し、適切なのUITextFieldに割り当てるコードのブロックです:

var selectedDate: String = String() 
selectedDate = self.dateformatterDateTime(self.datePicker!.date) as String 
myTextField.text = selectedDate 

func dateformatterDateTime(date: NSDate) -> NSString { 
    let dateFormatter: NSDateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = "dd-MM-yyyy" 
    return dateFormatter.stringFromDate(date) 

} 
+2

はあなたがdateformatterDateTimeを開始しているか確認することができ、これを試してみてください、あなたはここにその文を投稿してくださいすることができます。 – Jeet

+0

私の謝罪は、コードが更新されています。 – syedfa

+0

いいえ、どこに宣言したのですか?あなたは 'var dateFormatterDateTime = DateTimeformatter'のような宣言したかもしれません。 – Jeet

答えて

1

あなたが選択した日付を変換する必要がありますどちらかfunc dateformatterDateTime(date: NSDate) -> NSStringメソッドでイスラムの日付に変換するか、このメソッドに変換された日付を送信します。

var selectedDate: String = String() 

var date = (islamicCalendar?.date(byAdding:components, to: self.datePicker!.date, options: []))! 

selectedDate = self.dateformatterDateTime(date) as String 
myTextField.text = selectedDate 

func dateformatterDateTime(date: NSDate) -> NSString { 
    let dateFormatter: NSDateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = "dd-MM-yyyy" 
    return dateFormatter.stringFromDate(date) 
} 

か - - あなたがでてそれを行うことができます

func dateformatterDateTime(date: Date) -> NSString { 
    let dateFormatter: DateFormatter = DateFormatter() 

    dateFormatter.dateFormat = "dd-MM-yyyy" 

    var dateToSendBack = (islamicCalendar?.date(byAdding:components, to: date, options: []))! 
    return dateFormatter.string(from: dateToSendBack) 
} 
+0

私はまだグレゴリオ暦のバージョンを取り戻しています。 – syedfa

+0

あなたはgithubや類似のものを使ってコードを共有できますので、見た目を元に戻すことができます。 – Jeet

0

let picker = UIDatePicker(frame: CGRect(x: 0, y: 30, width: 0, height: 0)) 

picker.datePickerMode = .date 
picker.date = Date() 
picker.calendar = Calendar(identifier: .islamicUmmAlQura) 
picker.autoresizingMask = UIViewAutoresizing.flexibleRightMargin 
picker.frame.size.width = 300 
view.addSubview(picker) 
関連する問題