objective-c - 将 NSDate 从日历转换为另一个日历

标签 objective-c nsdate uidatepicker nscalendar

我这里遇到了麻烦。我花了几个小时但没有用。请记住,我检查了 StackOverFlow 是否有修复,但没有任何修复。

当我将 _date 对象从 Gregorian 转换为 Hijri 时,它不会转换。我知道这一点,因为当我打印它时,它仍然给我格里高利日。这让我很困扰,因为我想要 UIDatePickersetDate 并且它设置不正确,因为 _dategregorian 并且我的 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/

相关文章:

iOS 'dateFromString' 返回不同?

ios - UITableViewCell 中的 UIDatePicker 无法调整大小(高度)

ios - UIDatePicker 点击完成并显示文本

objective-c - 来自 Objective-C 协议(protocol)的 Swift 扩展

objective-c - (Mac) 面板大小调整问题

ios - 收到 APNS 通知但不显示

iphone - Apple 推送通知未到达测试设备

ios - 考虑到时区,如何按日期属性获取记录?

iphone - 关于 JSON 日期转换错误

iphone - 如何在 UIDatePicker 中记住并加载选定的日期?