我有来自服务器的日期字符串“5/31/2017 10:05:59 AM +00:00”,我正在尝试将其转换为NSDate,
{{1}}
但它给了我null,Plase Help Thanks。
答案 0 :(得分:1)
试试这个
dateFormatter.dateFormat = @"MM/dd/yyyy hh:mm:ss a z";
答案 1 :(得分:1)
将dateformat设置为
dateFormatter.dateFormat = @"MM/dd/yyyy hh:mm:ss a z";
完整代码是
NSDateFormatter *dateFormatter = [NSDateFormatter new];
dateFormatter.dateFormat = @"MM/dd/yyyy hh:mm:ss a z";
dateFormatter.timeZone = [NSTimeZone localTimeZone];
NSDate *expiryDate = [dateFormatter dateFromString:@"5/31/2017 10:05:59 AM +00:00"];
NSLog(@"expiry date %@", expiryDate);
<强>输出强>
答案 2 :(得分:1)
您使用的日期格式错误。 5/31/2017 10:05:59 AM +00:00
而不是MM/dd/yyyy hh:mm:ss a +zz
,您应该使用“M/dd/yyyy hh:mm:ss a Z
但在使用NSDateFomatter
之前,您应该使用:
从时区中删除stringByReplacingOccurrencesOfString
,因为Z
会将日期解析为+0000
要进行更多测试,您可以使用以下链接:http://nsdateformatter.com
答案 3 :(得分:0)
您的代码是正确的,但日期格式错误。 检查以下代码
Z而不是zz
NSString *expiration =@"5/31/2017 10:05:59 AM +00:00";
NSDateFormatter *dateFormatter = [NSDateFormatter new];
dateFormatter.dateFormat = @"MM/dd/yyyy hh:mm:ss a Z";
dateFormatter.timeZone = [NSTimeZone localTimeZone];
NSDate *expiryDate = [dateFormatter dateFromString:expiration];
NSLog(@"expiry date %@", expiryDate);
答案 4 :(得分:0)
好的,试试这样:heredateFormatter.dateFormat = @"MM-dd-yyyy hh:mm:ss a zz";