Objective c 使用NSDateFormatter设置日期格式
我正在尝试以Objective c 使用NSDateFormatter设置日期格式,objective-c,nsdate,nsdateformatter,Objective C,Nsdate,Nsdateformatter,我正在尝试以NSString的形式获取日期。我收到日期的格式为2017-05-05T04:42:44.954604Z 下面是我试图应用的代码NSDateFormatter NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; NSString *newdate = [utcDate stringByReplacingOccurrencesOfString:@"T" withString:@" "]; [dateForma
NSString
的形式获取日期。我收到日期的格式为2017-05-05T04:42:44.954604Z
下面是我试图应用的代码NSDateFormatter
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSString *newdate = [utcDate stringByReplacingOccurrencesOfString:@"T" withString:@" "];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.Z"];
msgDate = [dateFormatter dateFromString:newdate];
但是msgDate
正在显示nil
试试这个
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ";// chang
NSDate *date = [dateFormatter dateFromString:@"2017-04-13T05:57:44.886Z"];
NSString * msgDate = [dateFormatter stringFromDate:date];
// if get nil **date** try to change this time format
使用“SS”说明符(在您的情况下,S的数量等于您想要得到的位数-6)
而不是
NSString *newdate = [utcDate stringByReplacingOccurrencesOfString:@"T" withString:@" "];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.Z"];
更新
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyyy-MM-dd'T'HH:mm:ss.SSSSSSZ"];
NSDate *msgDate = [dateFormatter dateFromString:@"2017-05-05T04:42:44.954604Z"];
输出
您的utcDate是以ISO 8601格式提供的。看看这个问题:另一个类似的问题,我认为它说的次数不够多,但是写
2017-05-05T04:42:44.954604Z
和下面写yyyy-MM-dd HH:MM:ss.Z
。dateFormat与字符串日期不匹配有什么问题?那会告诉你你的问题吗?“T”是什么意思?在您的dateFormat中它是如何解释的?等等。是的,成功了thanks@MugheesMusaddiq-检查更新的答案
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyyy-MM-dd'T'HH:mm:ss.SSSSSSZ"];
NSDate *msgDate = [dateFormatter dateFromString:@"2017-05-05T04:42:44.954604Z"];
#pragma mark- Change dateFormat method
+ (NSString*) changeDateFormat:(NSString*)date
{
NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"];
NSDate* fromDate = [formatter dateFromString:date];
[formatter setDateFormat:@"YYYY.MM.dd"];
NSString* formatedDate = [formatter stringFromDate:fromDate];
if (formatedDate == nil)
{
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
fromDate = [formatter dateFromString:date];
[formatter setDateFormat:@"YYYY.MM.dd"];
formatedDate = [formatter stringFromDate:fromDate];
}
if (formatedDate == nil)
{
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
fromDate = [formatter dateFromString:date];
[formatter setDateFormat:@"YYYY.MM.dd"];
formatedDate = [formatter stringFromDate:fromDate];
}
return formatedDate;
}