我需要将“2013-05-05T00:00:00Z”此字符串转换为NSDate,然后再将NSDate转换为Nsstring。我尝试过不同格式的风格,但没有取得任何成功。
我已经查过了。
Convert NSDate to Sql Server Datetime format
感谢。
// for getting string for Advance search
-(NSDate*) doGetDateFromStringGSearch :(NSString*) dateStr
{
NSDateFormatter * outputFormatter4 = [[[NSDateFormatter alloc ] init ] autorelease ];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[outputFormatter4 setLocale:locale];
//[outputFormatter4 setDateFormat: @"yyyy-MM-dd'T'HH:mm:ss:SSS"];
//[outputFormatter4 setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"];
[ outputFormatter4 setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss:Z" ];
//[ outputFormatter4 setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss':00Z'" ];
NSString * inputString2 = dateStr;
NSDate * inputRecivedToDate = [outputFormatter4 dateFromString:inputString2 ];
NSLog(@"doGetDateFromString %@", inputRecivedToDate);
return [[inputRecivedToDate retain] autorelease];
}
答案 0 :(得分:3)
将格式化程序字符串更改为:
[outputFormatter4 setDateFormat:@"yyyy-MM-dd'T'hh:mm:ss'Z'"];
完整代码:
NSDateFormatter *dateFormatter=[NSDateFormatter new];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'hh:mm:ss'Z'"];
NSDate *date=[dateFormatter dateFromString:@"2013-05-05T00:00:00Z"];
NSLog(@"%@",date);
答案 1 :(得分:1)
我多年来一直使用带有@"yyyy-MM-dd'T'HH:mm:ssZZZZ"
格式的NSDateFormatter,但发现只有少数,但只有少数(可能不到1%)的设备没有成功,并且返回nil。
作为一个后备,我一直在使用这个库:https://github.com/keithpitt/ISO8601DateFormatter现在我没有看到解析ISO8601日期格式的任何问题。
该库同时支持dateFromString:
和stringFromDate:
。