Jea*_*ean 2 iphone objective-c nsdate nsdateformatter ios
我以前用几种格式做了好几次.无法理解这里有什么可以忽略的!日期转换不能那么难!:)但似乎太烦人了.我得到这样的字符串: 2013年8月9日06:44:01:950AM
我试图用这段代码将它转换为日期:
[Date_Converter getDateFromString:date withFormat:@"MMM dd YYYY HH:mm:ss:SSSa"]
Run Code Online (Sandbox Code Playgroud)
并在DateConverter.m中
+(NSDate *) getDateFromString:(NSString *) strDate
withFormat:(NSString *) format {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:format];
//[formatter setTimeZone:[NSTimeZone localTimeZone]];
NSDate *dateFromStr = [formatter dateFromString:strDate];
return dateFromStr;
}
Run Code Online (Sandbox Code Playgroud)
NSDate从上面的方法得到的返回值是这个!
2013-01-04 19:14:01 +0000
输入日期为 2013年8月9日06:44:01:950AM
怎么会这样?对于各种其他日期格式,我已经多次使用相同的方法.请帮忙.我在这里俯瞰什么?
更新 将格式更改为
[Date_Converter getDateFromString : date
withFormat : @"MMM dd yyyy hh:mm:ss:SSSa"];
Run Code Online (Sandbox Code Playgroud)
但它仍然返回null.请帮助.
最后提供了什么 添加[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]]; 到目前为止转换为@MartinR建议如下!
您的日期格式有两个错误:
yyyy不是YYYY.hh不是HH.更新:此外,为避免依赖于当前语言环境,请添加
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
Run Code Online (Sandbox Code Playgroud)
如果你有一个使用英文月份名称/缩写的固定输入格式.