我以前用几种格式做过几次。无法理解在这里俯瞰的是什么!日期转换不会那么难! :) 但似乎太麻烦了。 我得到这样的字符串: 2013 年 8 月 9 日 06:44:01:950AM
我正在尝试使用此代码将其转换为日期:
[Date_Converter getDateFromString:date withFormat:@"MMM dd YYYY HH:mm:ss:SSSa"]
并且在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;
}
从上面的方法得到的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"];
但它仍然返回 null。请帮忙。
最终的帮助 添加 [格式化程序 setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]]; 按照下面@MartinR 的建议进行最新转换!
最佳答案
您的日期格式有两个错误:
- 年份的正确格式是
yyyy
,而不是YYYY
。 - 12 小时制 AM/PM 时间的格式是
hh
,而不是HH
。
更新:此外,为避免对当前语言环境的依赖,添加
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
如果您有使用英文月份名称/缩写的固定输入格式。
关于iphone - iOS : Date conversion results in wrong date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18148236/