我需要以这种字符串格式转换日期:
“2011-01-12T14:17:55.043Z”
到1294841716之类的数字(这是1970年1月1日以来的秒数[不是毫秒])。有没有简单的方法来进行解析?
更新:这是我到目前为止的代码:
NSString *dateString = @"2011-01-12T14:17:55.043Z";
NSDateFormatter *inFormat = [[NSDateFormatter alloc] init];
[inFormat setDateFormat:@"yyyy-MM-ddTHH:mm:ss.nnnZ"];
NSDate *parsed = [inFormat dateFromString:dateString];
long t = [parsed timeIntervalSinceReferenceDate];
但t
每次都回到0。
答案 0 :(得分:18)
使用NSDateFormatter获取NSDate
,然后使用- (NSTimeInterval)timeIntervalSince1970
获取自1970年以来的秒数。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
NSDate *date = [formatter dateFromString:@"2011-01-12T14:17:55.043Z"];
NSLog(@"Date: %@", date);
NSLog(@"1970: %f", [date timeIntervalSince1970]);
NSLog(@"sDate: %@", [formatter stringFromDate:date]);
[formatter release];