我已经搜索并没有找到像我这样的确切问题,所以这里什么都没有:
我有一个 NSString ,其中包含我从 XML 提要中提取的密钥。关键是 24 小时格式的时间(例如 13:30 或 15:00。)我想将 NSString 转换为 NSDate 并根据设备设置的时区将其转换为适当的时区。关键是 Unicode HH:mm (24:00),所以我很好奇为什么这不能正常工作。
我已经得到了一个应该可以工作的基本大纲,但可惜没有。第二个 NSLog(得到 NS 日期)返回 null,最后一个日志返回一个奇怪的数字(准确地说是 1969-12--2147483629 -596:-31:-23 +0000。)我在这里做错了什么?
提前致谢,
NSString *dateString = [dict objectForKey:@"24hrdate"];
NSLog(@"NSString Date: %@", dateString);
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm"];
NSDate *sourceDate = [formatter dateFromString:dateString];
NSLog(@"Got NS Date: %@", sourceDate);
NSTimeZone *sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
NSTimeZone *destinationTimeZone = [NSTimeZone systemTimeZone];
NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:sourceDate];
NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:sourceDate];
NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;
NSDate* destinationDate = [[[NSDate alloc] initWithTimeInterval:interval sinceDate:sourceDate] autorelease];
NSLog(@"Final Date: %@", destinationDate);