我的應用程序使用[NSDate date]函數獲取當前日期。除了AM期間每個月的第一天外,其他日子的工作情況良好。即跟隨以下步驟:NSDate在第一天返回錯誤的日期
- 將系統日期設置爲01 - 2011年6月&時間從午夜00.00到午夜5.59之間。
- 使用下面的代碼:
NSLog(@"Current Date :: %@",[NSDate date]);
的O/P是::當前日期:: 2011-05-31 19點40分21秒+0000
期望中的O/P是::當前日期:: 2011-06-01 00:00:0(即時間設定)+0000
也從上午6點它工作正常。
這是什麼原因?
其實我不想NSDate字符串格式,但我想要的是NSDate日期對象對應於當前月份的第一個日期。我使用以下代碼片段:
NSCalendar *gregorian = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
[gregorian setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
NSDateComponents *comp = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit
| NSDayCalendarUnit) fromDate:[NSDatedate]];
[comp setDay:1];
NSDate *firstDayOfMonthDate = [gregorian dateFromComponents:comp];
[gregorian release];
return firstDayOfMonthDate;
由於[NSDate date]返回錯誤的日期,組件也包含錯誤的日期。上面的代碼適用於所有senario,除了我在本主題開頭髮布的senario之外。我該怎麼辦?
鑑於此信息,我想不出爲什麼它應該是這樣的原因。也許它是一個錯誤? –