我正在尝试使用特定的格式来转换日期,并且只想从过去的日期获取日期,如下所示,但是获得了nil 我做错了什么?
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
NSDate *date = [dateFormatter dateFromString: [dicValues valueForKey:@"DateNeeded"]];
[dateFormatter setDateFormat:@"dd/MM/yyyy h:mm a"];
NSString *strSubTitle = [[NSString alloc] initWithFormat:@"%@", [dateFormatter stringFromDate:date]];
我收到的日期是:2016-11-17T23:46:50.35,2016-11-28T21:25:20.927和2016-11-29T00:00:00
答案 0 :(得分:1)
您需要转换
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
到这个
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS"];
与日期字符串一样,您也会收到MilliSeconds
修改强>
此代码适用于我,请检查您从服务器获取的日期格式
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS"];
NSDate *date = [dateFormatter dateFromString: @"2016-11-28T21:25:20.927"];
if (date == nil) {
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
date = [dateFormatter dateFromString: @"2016-11-28T21:25:20.927"];
}
[dateFormatter setDateFormat:@"dd/MM/yyyy h:mm a"];
NSString *strSubTitle = [[NSString alloc] initWithFormat:@"%@", [dateFormatter stringFromDate:date]];
答案 1 :(得分:0)
[dicValues valueForKey: @"DateNeeded"]
为nil或与指定的格式"yyyy-MM-dd HH:mm:ss"
不匹配。
答案 2 :(得分:0)
首先检查您收到的日期,格式为yyyy-MM-dd HH:mm:ss
。如果没有,则根据您收到的日期制作此格式。
例如,您收到了日期29/11/16
,那么您的代码将是这样的
[dateFormatter setDateFormat:@"dd/MM/yy"];
NSDate *date = [dateFormatter dateFromString: [dicValues valueForKey:@"DateNeeded"]];
获得约会后,将其转换为您想要的任何格式。
答案 3 :(得分:0)
试
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS"];