我怎样才能得到正确的日期?

时间:2010-05-18 05:56:39

标签: objective-c nsdate

我有NSString类型的时间。我想知道这一天,但我觉得很奇怪。

     NSString *strTime = @"2010-05-14 16:00:01";
 NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
 [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
 NSDate *oldDate = [formatter dateFromString:strTime];

 unsigned int flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
 NSCalendar* calendar = [NSCalendar currentCalendar];

 NSDateComponents* components = [calendar components:flags fromDate:oldDate];
 int day = [components day];

当NSString * strTime = @“2010-05-14 16:00:01”时,那天是15,当NSString * strTime = @“2010-05-14 16:00:00”时,那天是14。我想知道为什么?

1 个答案:

答案 0 :(得分:2)

您在加利福尼亚州(可能),日期对象是GMT。使用NSCalendar意味着日期将从您的语言环境转换为GMT。