Ios 将美国时间和日期转换为GMT
我正在尝试将日期/时间从美国转换为格林尼治标准时间。它似乎不起作用。它一直返回空值Ios 将美国时间和日期转换为GMT,ios,iphone,objective-c,Ios,Iphone,Objective C,我正在尝试将日期/时间从美国转换为格林尼治标准时间。它似乎不起作用。它一直返回空值 int subObjects = ((NSArray *)jsonResult[@"match"]).count; for (int i = 0; i <= subObjects-1; i++) { NSString *date = [NSString stringWithFormat:@"%@ %@",[[[jsonResult valueForKey:@"match"] valueForKe
int subObjects = ((NSArray *)jsonResult[@"match"]).count;
for (int i = 0; i <= subObjects-1; i++) {
NSString *date = [NSString stringWithFormat:@"%@ %@",[[[jsonResult valueForKey:@"match"] valueForKey:@"playdate"] objectAtIndex:i], [[[jsonResult valueForKey:@"match"] valueForKey:@"time"] objectAtIndex:i]];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setTimeZone: [NSTimeZone timeZoneWithName:@"US/Arizona"]];
[df setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
[df setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];
NSDate *myDate = [df dateFromString:[NSString stringWithFormat:@"%@", date]];
}
myDate日志
2014-03-16 16:00:00 +0000
2014-03-08 16:00:00 +0000
2014-03-09 16:00:00 +0000
2014-03-15 17:00:00 +0000
2014-03-09 18:00:00 +0000
2014-03-08 18:00:00 +0000
2014-03-16 18:00:00 +0000
2014-03-10 07:00:00 +0000
2014-03-15 07:00:00 +0000
(null)
24小时时间的日期格式是
HH
,而不是HH
。以及,如观察到的,例如
,你应该加上
[df setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];
独立于设备上的区域设置。打印
日期的值
,以便我们可以查看格式。否,只是因为我没有添加loop@user3258468:您已编辑代码,使其与输出不再匹配。您能显示NSLog语句的实际输出吗?此处不适用区域-checked@Daij-詹:我们拭目以待。这个问题是在我准备答案时编辑的(这样代码就不再与输出匹配)。添加代码后,我似乎得到了一个奇怪的回答。前7个是正确的,但后2个不是,然后有一个返回0。这可以解释吗?你可以看到它在我的question@user3258468:看起来好像您没有将“hh”替换为“hh”。
[df setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];