UIDatePicker&NSDateFormatter返回不正确的日期
我已经尝试了几个帖子的解决方案,但没有运气。 问题是我面临的可能是白色时区。在设备和模拟器上,UIDatePicker和NSDateFormatter都返回不正确的日期,从所选日期(根据设备或mac上设置的当前时区)添加或减去GMT 0之间的差异。UIDatePicker&NSDateFormatter返回不正确的日期
我已经试过设置区域和时区,但没有任何工作。 任何想法都很好!谢谢。
(还没有发布任何代码示例,因为两者都没有,现在设置的任何属性初始化)。
更新1:
这里是代码片段:
datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0.0, frame.size.height - 216.0, frame.size.width, 216.0)];
[self addSubview:datePicker];
....
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"EEE, MMM d, y h:mma"];
NSString *dateString = [formatter stringFromDate:datePicker.date];
[formatter release];
发现解决方案时,应按以下方式添加时区差异。
- (NSDate *)dateToGMT:(NSDate *)sourceDate {
NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone];
NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:sourceDate];
NSDate* destinationDate = [[[NSDate alloc] initWithTimeInterval:destinationGMTOffset sinceDate:sourceDate] autorelease];
return destinationDate;
}
ios9.2的工作代码。 – pkc456 2016-01-06 06:42:48
你说你设定时区,但你没有说在哪里。你需要设置你的UIDatePicker和NSDateFormatter的timeZone属性。
我已经用代码更新了最初的帖子。我试图将timeZone属性设置为:defaultTimeZone,localTimeZone,甚至指定GMT + 3,但他们仍然返回不正确的日期。 – 2010-10-08 06:15:25
发布您的代码。帮助我们帮助你! ;-) – 2010-10-07 17:39:37