我这里遇到了麻烦。我花了几个小时但没有用。请记住,我检查了 StackOverFlow 是否有修复,但没有任何修复。
当我将 _date
对象从 Gregorian
转换为 Hijri
时,它不会转换。我知道这一点,因为当我打印它时,它仍然给我格里高利日。这让我很困扰,因为我想要 UIDatePicker
的 setDate
并且它设置不正确,因为 _date
是 gregorian
并且我的 UIDatePicker
对象日历设置为 setCalendar:_hijriCalendar
//DATE SETTING
_date = [NSDate date];
_hijriCalendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSIslamicCalendar];
_gregCalendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
unsigned units = NSYearCalendarUnit| NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *currentDateComponents = [_hijriCalendar components:units fromDate:[NSDate date]];
NSDate *islamicDate =[_hijriCalendar dateFromComponents:currentDateComponents];
NSLog(@" Current Date: %@",islamicDate); //this outputs gregorian current date not Hijri
注意:伙计们,我不想只打印日期。我知道使用设置为正确的 NSCalendar 对象的 NSDateFotmatter
可以完成这项工作。但我想将日期转换为新日期以将其设置为我的 UIDatePicker
。我希望你们明白我的意思。
最佳答案
NSDate
对象表示时间中的一个时刻,不考虑任何日历、时区或相对论(最后一个通常被认为不是问题)基于地球的计算机科学。)
当您通过任何方式创建 NSDate
实例时,它会简单地存储为自固定时间点(2001 年 1 月 1 日凌晨 12:00 GMT)以来的秒数iOS 和 OS X。)
因此,将日期从公历转换为回历不会执行任何操作,因为固定时刻保持不变。
如果您具体告诉我们您期望在公历和回历之间发生哪些尚未发生的转变,我们可以建议替代行动方案。
关于objective-c - 将 NSDate 从日历转换为另一个日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13158908/