如何在 iOS 8.1 中转换 "Tue, 14 Jul 2015 15:00:00 +0000"

how to convert "Tue, 14 Jul 2015 15:00:00 +0000" in iOS 8.1

我尝试通过这种方式将字符串转换为 NSDate

NSString *str = @"Tue, 14 Jul 2015 15:00:00 +0000";

NSDateFormatter* formatter = [[NSDateFormatter alloc] init];

[formatter setDateFormat:@"EEE, dd MMM yyyy hh:mm:ss zzzz"];

NSDate* aDate = [formatter dateFromString:str];

[formatter setDateFormat:@"MMM dd,yyyy HH:mm:ss"];

NSLog(@"%@", [formatter stringFromDate:aDate]);

但是是null,真正的方法是什么?

我试过了,应该可以,结果是:

Jul 14,2015 16:00:00 (based on my time zone)

代码如下:

NSString *str = @"Tue, 14 Jul 2015 15:00:00 +0000";

NSDateFormatter* formatter = [[NSDateFormatter alloc] init];


[formatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];

NSDate* aDate = [formatter dateFromString:str];

[formatter setDateFormat:@"MMM dd,yyyy HH:mm:ss"];
//formatter.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; if you want to avoid converting the time to the current timezone

NSLog(@"%@", [formatter stringFromDate:aDate]);

Date Format Patterns

希望这对你有帮助 -

NSString *str = @"Tue, 14 Jul 2015 15:00:00 +0000";
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZZ"];
NSDate* aDate = [formatter dateFromString:str];
[formatter setLocale:[NSLocale currentLocale]];
[formatter setDateFormat:@"MMM dd,yyyy HH:mm:ss"];
NSLog(@"%@", [formatter stringFromDate:aDate]);