Date format for 2016-10-20T13:01:47.317

微笑、不失礼 提交于 2019-12-02 18:50:01

问题


This is what I am trying for getting date from the string 2016-10-20T13:01:47.317 but getting nil

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

Also tried with yyyy but still getting nil.
I was not able to understand .317 so I eliminated that from the string. What shall be the date format for this ?


回答1:


it .317 means milliseconds use 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]; 



回答2:


You need to use this DateFormatter yyyy-MM-dd'T'HH:mm:ss.SSS in your code

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

Here date is not nil




回答3:


Try to use date format as

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



回答4:


Try this for remove millisecond :

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]);


来源:https://stackoverflow.com/questions/40462766/date-format-for-2016-10-20t130147-317

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!