0
我使用下面的代碼使用隨機日期來計算前一週的週一。其工作文件,但明年date.below我的代碼休息是相同的代碼:NSCalendar返回錯誤的日期爲上週一在第一個星期明年
NSDate *date = [NSDate dateWithTimeIntervalSince1970:1483620311.228];
NSLog(@"current date ===> : %@", date);
NSCalendar *calendar;
calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
[calendar setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en-US"]];
NSTimeZone *zone = [NSTimeZone timeZoneWithName:@"Australia/Sydney"];
[calendar setTimeZone:zone];
NSDateComponents *nowComponents = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitWeekday | NSCalendarUnitWeekOfYear | NSCalendarUnitWeekOfMonth | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond | NSCalendarUnitTimeZone fromDate:date];
if (nowComponents.weekday == 1) { //If my date fall in sunday then I am moving to previous week.
[nowComponents setWeekOfYear:[nowComponents weekOfYear]-1];
}
[nowComponents setWeekday:2]; //Monday
NSDate *previousMonday = [calendar dateFromComponents:nowComponents];
NSLog(@"previousMonday date ===> : %@", previousMonday);
在登錄我越來越爲:
當前日期===>:2017-01- 05 12點45分11秒+0000
previousMonday日期===>:2018年1月1日12時45分11秒+0000
我看到其他堆棧溢出的資源,但沒有得到預期的解決方案。
非常感謝。它適合我。你有什麼想法爲什麼我的代碼打印錯誤的價值? – kaushal
我必須更改我的問題標題以使其成爲答案。因爲它與問題標題不符。 – kaushal
僅當語言環境設置爲'en_US'時纔會出現錯誤。我認爲這是一個錯誤。 – vadian