NSDateComponents *pDateComponent = [GlobalFunctionsNSDateToNSDateComponents:[m_pDatePickerdate]];
NSCalendar *gregorian = [[NSCalendaralloc] initWithCalendarIdentifier:NSGregorianCalendar];
[pDateComponent setHour:00];
[pDateComponent setMinute:00];
[pDateComponent setSecond:00];
m_lSearchBeginTime = [[gregorian dateFromComponents:pDateComponent] timeIntervalSince1970];
运行时发现,pDateComponent的值是正确的年月日 00:00:00,而当dateFromComponents之后,时间却莫名其妙的变成了下午时间了,后来仔细想了想,觉得这个时间很像时区的时差,后来看了下模拟器的地区,果然。。。居然是america,难怪会有差异,把时区改回宇宙最伟大的国家之后,时间回归00:00:00,一切正常了。原来dateFromComponets是和你系统的时区相挂钩的。
by the way,代码里可以直接更改默认的时区,具体代码如下:[NSTimeZone setDefaultTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"CMT"]];