我是否使用正确的格式来解析日期?

我有问题使用NSDateFormatter解析日期字符串。 我已经将下面的方法方法实现为NSDate类别。 输入是以下日期字符串Thu,22 Dec 2011 16:03:39 +0100并使用以下模式解析EEE,dd MMM yyyy HH:mm:ss ZZZ

问题是该方法返回nil

+(NSDate*) dateFromString:(NSString*)dateString pattern:(NSString*)pattern
{
    NSDateFormatter *dateParser = [[NSDateFormatter alloc] init];
    [dateParser setDateFormat:pattern];

    NSDate *parsedDate = [dateParser dateFromString:dateString];

return parsedDate;
}

我查看了Stackoverflow和Internet上的其他地方,但未找到解决此问题的方法。


NSDateFormatter对12/24小时显示,月份和星期几名称等区域设置非常聪明。如果您初始化日期格式化程序,它始终使用当前区域设置,但您可以手动设置区域设置。 您可以使用en_US_POSIX语言环境标识符来取回不遵守语言环境设置的日期格式化程序,并始终使用相同的行为。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];

如果需要解析从服务器返回的日期字符串,这很方便(实际上也是必需的)。

如果你想在你的应用中显示日期字符串,你不应该直接使用-setDateFormat:方法,顺便说一句。 使用+dateFormatFromTemplate:options:locale:方法来获取正确的日期格式。

在某些语言中,这个月是在一天前写的,...

    NSString *dateFormat = [NSDateFormatter dateFormatFromTemplate:@"dd MMMM yyyy" options:0 locale:[NSLocale currentLocale]];
    [dateFormatter setDateFormat:dateFormat];
链接地址: http://www.djcxy.com/p/35181.html

上一篇: Am I using the correct format pattern for parsing a date?

下一篇: Does File Attribute contain millisecond? Objective