<分区>
我正在尝试从 week day 和 year 获取日期。它工作并获得正确的输出。但是,当我更改 CalendarIdentifier 时,它将显示错误的输出。
这是我的代码
当我将 CalendarIdentifier 设置为 NSGregorianCalendar 时
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setYear:2013];
[components setWeek:2];
[components setWeekday:1];
NSDate *resultDate = [gregorian dateFromComponents:components];
output is :- 2013-01-05 18:30:00 +0000
当我改变 CalendarIdentifier 是 NSIndianCalendar
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSIndianCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setYear:2013];
[components setWeek:2];
[components setWeekday:1];
NSDate *resultDate = [gregorian dateFromComponents:components];
Output is :- 2091-03-24 18:30:00 +0000
我做错了什么?..提前致谢..
编辑
根据 Midhun MP 的回答,我的输出是正确的。
现在我的问题是如果我使用 NSGregorianCalendar
输出是:- 2013-01-05 18:30:00 +0000 该日期的一天是星期六。
根据 NSGregorianCalendar 星期六是一周的开始,星期五是一周的结束。 我想找到类似的一周开始和结束,即印度的星期一和星期日,或者它是不同的??? .
最佳答案
输出是正确的。
印度日历比公历早 78 年。因此,印度历中的 2013 年等于公历中的 2091 年。
另外印度历的第一个月是公历的第三个月(三月)
2013 (Indian Calendar) + 78 = 2091 (Gregorian Calendar)
3 (March in Indian Calendar) + 2 = 5 (May in Gregorian Calendar)
同样,天也有变化。
引用:Wikipedia
关于ios - 使用 NSIndianCalendar 时显示错误的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17462661/