繁体   English   中英

NSDateFormatter有时返回nil

[英]NSDateFormatter returns nil sometimes

我创建了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];

例如,对于字符串“ Fri,09 Jan 2015 15:08:01 GMT”,它返回nil,但对于“ Fri,12 Dec 2014 09:15:52 GMT”,它返回正确的NSDate。

我试图在日期格式中添加括号,并尝试将语言环境设置为“ en_US_POSIX”,并且尝试使用一个小z而不是一个大z,但是它们都不起作用。

我究竟做错了什么? 谢谢你的帮助。

NSDateFormatter遵循Unicode标准的日期和时间模式。 在24小时制的小时中使用“ H”表示小时:

因此,在您的代码中,正确的方法应该是:

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];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM