无法在NSDate中存储正确的日期

时间:2015-12-10 09:52:40

标签: timezone nsdate ios9 nstimezone

我正在尝试在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:month:day是我正在使用的第三方日历中的类别方法。该方法的代码如下:

+ (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;

}

先谢谢。

1 个答案:

答案 0 :(得分:0)

有很多方法可以从数据中设置日期,

NSDateFormatter:

PFUser.currentUser()?.saveInBackground()

NSDateComponents :(您可以在特定时间添加setSecond,setMinute,setHour)

NSString *dateString = @"2015-12-01";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd";
NSDate *date1 = [dateFormatter dateFromString:dateString];