2013-10-28 105 views
-1

我的日期转换有问题,我没有成功找到解决方案。这会让我发疯。 因此,我从REST Web服务中检索日期,在字符串类型下,当我尝试将日期转换为NSDate时,我失去了一年。从NSString问题转换NSDate

下面是代码:

- (NSDate *)convertISOToDate:(NSString *) dateString { 
    NSDateFormatter * formatter = [[NSDateFormatter alloc] init]; 
    [formatter setCalendar:[NSCalendar currentCalendar]]; 
    [formatter setDateFormat:@"YYYY-MM-dd'T'HH:mm:ssZZZ"]; 
    [formatter setLocale:[NSLocale currentLocale]]; 
    NSDate *date = [formatter dateFromString:dateString]; 
    return date; 
} 

当我调试,我有这个输入:dateString __NSCFString * @” 2017年 -12-30T11:51:46 + 0100"

而且日期对象:日期__NSDate * -12-30 11:51:46 CET 0x1dd3e950

任何人都会对此问题有所了解?

回答

4

使用"yyyy"而不是"YYYY""YYYY"是基于每周的年份。

[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"]; 
+0

权!非常感谢你,现在它完美的作品:) – SlumTheSlug

+0

不客气,我遇到了同样的问题,在过去:) –

+0

然后接受这个答案.... –

2

试试这个:

[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZ];