2010-05-18 54 views
0

我有一个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秒” 的一天是14.我想知道为什么?

回答

2

你在加州(可能),日期对象是格林尼治标准时间。使用NSCalendar意味着日期将从您的区域设置转换为GMT。

+0

是的,我忘记设置区域 – Haley 2010-05-18 09:46:20