将EST转换为GMT显示错误的时间

时间:2015-03-10 17:14:19

标签: ios objective-c nsdate nsdateformatter nstimezone

我正在尝试将纽约的时间转换为GMT - 它在iPhone中运行良好,但是当我在iPad中试用它时显示1小时+。我试图将10.00AM转换为GMT - 当前值是下午2点,但我到了下午3点。

为什么会这样? 这是我的代码。

NSDate *dateTT = datePicker.date;  //10.00PM
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[dateFormat setTimeZone:gmt];
[dateFormat setDateFormat:@"HH:mm"];


NSLog(@"date in gmt---%@",[dateFormat stringFromDate:dateTT]);
//date in gmt---3:00 pm

1 个答案:

答案 0 :(得分:1)

您是否正确设置了日期选择器?使用以下方式设置日期选择器:

NSTimeZone *est = [NSTimeZone timeZoneWithAbbreviation:@"EST"];
datePicker.timeZone = est;
datePicker.dateValue = [NSDate new];

并将代码置于选择器的IBAction方法中,产生预期的下午2点(美国东部时间晚上10点到格林威治标准时间下午2点)。