再次将NSString转换为NSDAte

时间:2014-06-22 20:37:43

标签: ios objective-c nsstring nsdate

我有一个标签:

_labelCell.text = [2014-06-22 20:27:48 +0000];

我想要做的是将此字符串转换为NSDate,以便我可以将其格式化为:EEEE dd MM yyyy

我试试:

    // convert to date
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-dd'T'HH:mm:ss'+0000'"];
NSDate *dte = [dateFormat dateFromString:str];
NSLog(@"Date: %@", dte);

但它总是给我一个NULL NSDate

有人可以帮我这个小东西吗?

非常感谢你。

2 个答案:

答案 0 :(得分:1)

您的日期格式需要与日期格式相似。有关格式模式,请参阅http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns。对于您的约会2014-06-22 20:27:48 +0000,您需要使用“yyyy-MM-dd HH:mm:ss ZZZ”。请注意,它必须是“yyyy”,而不是“YYYY”,并且区域字段应该被解析而不是被视为文字。没有“T”分隔日期和时间。

答案 1 :(得分:-3)

您的日期格式化程序期望日期和时间之间有T。它返回null,因为字符串有空格而不是T

你在时区之前也错过了一个空格。

解决这两个问题,它应该有效:

dateFormat.dateFormat = @"YYYY-MM-dd HH:mm:ss '+0000'";

请注意,由于时区问题,这可能会给您错误的日期。测试一下,如果不起作用,请使用dateFormat.timeZone = ...

进行相应调整