我有一个标签:
_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
有人可以帮我这个小东西吗?
非常感谢你。
答案 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 = ...