NSDateFormatter dateFromString 格式字符串问题

Posted

技术标签:

【中文标题】NSDateFormatter dateFromString 格式字符串问题【英文标题】:NSDateFormatter dateFromString format string issue 【发布时间】:2015-06-02 11:47:18 【问题描述】:

我今天遇到了一个小问题:我从网络服务器收到了几个日期(NSString)。要正确使用这些日期,需要将它们解析为 NSDate 对象,为此我使用以下代码:

NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
formatter.dateFormat = @"dd.MM.yyy HH:mm:ss";
return [formatter dateFromString:dateString]

我收到的日期格式如下,例如:@"02.06.2015 13:31:24"。

我的问题是上面的代码返回 nil。我认为问题可能是我没有正确的格式字符串,我无法正确处理..

任何帮助将不胜感激!

【问题讨论】:

尝试使用 [NSDate date] 而不是你的 dateString 并告诉我你得到了什么? 您是否阅读过 Apple 关于使用格式解析日期的技术说明? 您似乎在年份部分缺少一个 y... @DavidSilverFarmer 你的问题解决与否。 虽然您在年份格式中缺少“y”,但它适用于我。因此,我怀疑您收到的格式的正确性。 【参考方案1】:

您的格式中缺少一个“y”。应该是:

NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
formatter.dateFormat = @"dd.MM.yyyy HH:mm:ss";
return [formatter dateFromString:dateString]

【讨论】:

【参考方案2】:

请尝试以下代码 -

NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
formatter.dateFormat = @"dd.MM.yyyy HH:mm:ss";
return [formatter dateFromString:dateString]

【讨论】:

【参考方案3】:
-(NSDate *)getDateFromString:(NSString *)string

    NSString * dateString = [NSString stringWithFormat: @"%@",string];
    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd.MM.yyyy HH:mm:ss"];
    NSDate* myDate = [dateFormatter dateFromString:dateString];
    return myDate;

在需要的地方调用它:)

[self getDateFromString:@"13.07.2013 16:22:11"];

【讨论】:

以上是关于NSDateFormatter dateFromString 格式字符串问题的主要内容,如果未能解决你的问题,请参考以下文章

带有 NSDateFormatter 的 RestKit

共享 NSDateFormatter - 最佳实践?

NSDateFormatter 没有意义

NSDateFormatter 没有给出预期的结果

NSDateFormatter 给出不同的输出/错误(GMT?)时间

NSDateFormatter常见的使用方式