我想在NSDate中存儲日期,但沒有得到正確的輸出。 編寫下面的代碼片段。無法在NSDate中存儲正確的日期
NSDate *firstDate = [NSDate dateWithYear:2015 month:12 day:1 ];
預計產量將2015-12-1 18:30:00 +0000。
但是,得到2015年11月30日18:30:00 +0000
忽略時間戳。
dateWithYear:月:日是一類方法是存在的第三方日曆對此我的方法的using.the代碼如下:
+ (NSDate *)dateWithYear:(NSInteger)year month:(NSInteger)month day:(NSInteger)day {
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [NSDate componentsWithYear:year month:month day:day];
return [calendar dateFromComponents:components];
}
return [calendar dateFromComponents:components];
是
+ (NSDateComponents *)componentsWithYear:(NSInteger)year month:(NSInteger)month day:(NSInteger)day {
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setYear:year];
[components setMonth:month];
[components setDay:day];
return components;
}
在此先感謝。
爲什麼會期望它是UTC時間下午6點30分?你怎麼得到*輸出*?我懷疑它只是在當地時區午夜創建一個日期。如果該時區在UTC + 05:30,那麼這將解釋您的輸出。 –
喬恩忽略了時間。如何得到我給出的確切日期作爲輸入。我是否需要設置時區? – Ranbijay
「忽略時間」毫無意義 - 這是價值的一部分,有效。一個'NSDate'只是一個即時的時間,並且您指定的代碼表示您指定日期的當前時區的午夜時間。你想要代表什麼確切的瞬間? ('dateWithYear'指定在哪裏?我在[documentation](https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSDate_Class/)中看不到它。 ) –