我创建了一个NSDateFormatter,但有时它会在给定字符串中创建一个NSDate,有时它不会在同一个设备上(模拟器)。
这是我的代码:
NSString *lastModifiedString = [metaData objectForKey:@"Last-Modified"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy hh:mm:ss Z"];
NSDate *onlineModDate = [dateFormatter dateFromString:lastModifiedString];
例如字符串 "周五,2015年1月9日15:08:01 GMT"它返回零但是对于"星期五,2014年12月12日09:15:52 GMT"它返回正确的NSDate。
我尝试在dateformat中添加括号,并尝试将语言环境设置为" en_US_POSIX"我尝试了一点z而不是一个大的但是它都没有用。
我做错了什么?谢谢你的帮助。
答案 0 :(得分:3)
NSDateFormatter遵循Unicode standard for date and time patterns.使用' H' 24小时制的小时:
因此,在您的代码中,正确的方法应该是:
NSString *lastModifiedString = [metaData objectForKey:@"Last-Modified"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];
NSDate *onlineModDate = [dateFormatter dateFromString:lastModifiedString];