2016-10-20T13的日期格式:01:47.317

时间:2016-11-07 10:20:30

标签: ios objective-c nsdate nsdateformatter

我正在尝试从字符串 2016-10-20T13:01:47.317 获取日期,但获取nil

NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
dateString = [dateString substringToIndex:dateString.length - 3];
[dateFormatter1 setDateFormat:@"YYYY-MM-ddTHH:mm:ss"];
NSDate *date = [dateFormatter1 dateFromString:dateString]; 

也尝试了 yyyy ,但仍然没有 我无法理解 .317 所以我从字符串中删除了它。这个的日期格式是什么?

4 个答案:

答案 0 :(得分:1)

它.317表示毫秒使用SSS

NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
[dateFormatter1 setDateFormat:@"yyyy-MM-ddTHH:mm:ss.SSS"]; // or omit the timezone use `yyyy-MM-dd'T'HH:mm:ss.SSS`
 NSDate *date = [dateFormatter1 dateFromString:dateString]; 

答案 1 :(得分:1)

尝试将日期格式用作

NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
[dateFormatter1 setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS"];
NSDate *date = [dateFormatter1 dateFromString:dateString]; 

答案 2 :(得分:1)

您需要在代码中使用此DateFormatter yyyy-MM-dd'T'HH:mm:ss.SSS

NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
[dateFormatter1 setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS"];
NSDate *date = [dateFormatter1 dateFromString:dateString]; 

这里的日期不是零

答案 3 :(得分:0)

尝试使用此方法删除毫秒:

NSString *dateString = @"your string";
NSDateFormatter* dateFormatter1 = [[NSDateFormatter alloc] init];
dateFormatter1.dateFormat = @"YYYY-MM-ddTHH:mm:ss.SSS";
NSDate *yourDate = [dateFormatter1 dateFromString:dateString];
dateFormatter1.dateFormat = @"YYYY-MM-ddTHH:mm:ss";
NSLog(@"%@",[dateFormatter1 stringFromDate:yourDate]);