Facebook以下列格式提供日期对象:2010-12-01T21:35:43+0000
我想将此格式转换为NSDate。
我正在使用以下代码。为什么返回null
。
NSDateFormatter *df = [[NSDateFormatter alloc] init];
dateString = [dateString stringByReplacingOccurrencesOfString:@"T" withString:@" "];
dateString = [dateString stringByReplacingOccurrencesOfString:@"+" withString:@" +"];
NSLog(@"%@", dateString);
[df setDateFormat:@"yyyy-MM-dd HH:mm:ss '+'ZZZZ"];
NSLog(@"%@",df.dateFormat);
NSDate *date = [df dateFromString:dateString];
NSLog(@"%@ date",date);
答案 0 :(得分:1)
只需在代码中将'+'ZZZZ
替换为+zzzz
..
NSString *dateString=@"2010-12-01T21:35:43+0000";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
dateString = [dateString stringByReplacingOccurrencesOfString:@"T" withString:@" "];
dateString = [dateString stringByReplacingOccurrencesOfString:@"+" withString:@" +"];
NSLog(@"%@", dateString);
[df setDateFormat:@"yyyy-MM-dd HH:mm:ss +zzzz"];
NSLog(@"%@",df.dateFormat);
NSDate *date = [df dateFromString:dateString];
NSLog(@"%@ date",date);
输出是:
2016-04-30 14:52:10.118 date[2523:187669] 2010-12-01 21:35:43 +0000
2016-04-30 14:52:10.120 date[2523:187669] yyyy-MM-dd HH:mm:ss +zzzz
2016-04-30 14:52:10.153 date[2523:187669] 2010-12-01 21:35:43 +0000 date
答案 1 :(得分:0)
您无需替换字符串
中的任何字符试试这段代码:
目标-C
NSString *dateString=@"2010-12-01T21:35:43+0000";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZ"];
NSDate *date = [df dateFromString:dateString];
NSLog(@"%@ date",date);
夫特:
let dateString: String = "2010-12-01T21:35:43+0000"
let df: NSDateFormatter = NSDateFormatter()
df.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZ"
let date: NSDate = df.dateFromString(dateString)!
print("date: \(date)")
答案 2 :(得分:-1)
只需对yyyy-MM-dd'T'HH:mm:ssZ
使用dateFormat
,就不要乱用字符串操作。
您可能想要做的唯一事情就是按照Apple Technical Q&A 1480中的说明设置locale
,这样无论设备可能具有哪种日历设置,这都会有效:
df.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];