NSDateFormatter转换为错误的日期不知道为什么
我正在使用以下代码将字符串 19-01-2014 01:06:54 PM 转换为日期
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"DD-MM-YYYY hh:mm:ss a"];
NSDate *date = [dateFormat dateFromString:startTime];
我得到以下输出不正确。请提出一些建议
打印日期说明: 2014-01-04 07:36:54 +0000
答案 0 :(得分:1)
格式字符串中的“DD-MM-YYYY”部分不正确,应为“dd-MM-yyyy”。 (有关a,请参阅http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns 所有日期格式的完整列表。)
此外,您应将“POSIX区域设置”设置为独立于用户的区域设置/区域 设置:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd-MM-yyyy hh:mm:ss a"];
[dateFormat setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];
NSDate *date = [dateFormat dateFromString:startTime];
答案 1 :(得分:0)
打印NSDate将返回默认描述 - 由于NSDates不考虑区域设置,时区等,因此默认为UTC +/- 0000(注意+0000)。