我在iOS 9中遇到日期格式问题,它适用于iOS 8,当我在iOS 9的模拟器中测试它时,它也有效,但是在真实设备上进行测试时使用iOS 9我得到了null。以下是我使用
的代码NSLog(@"String Date: '%@'", stringDate);
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
NSDate *date = [dateFormat dateFromString:stringDate];
NSLog(@"Date: %@", date);
在日志中我得到:
String Date: '8/29/2015 4:13:39 PM'
Date: (null)
此外,如果我使用大写h(H或HH),我总是得到那个小时是10。
答案 0 :(得分:5)
尝试在日期格式化程序上设置区域设置。
[dateFormat setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
如果您正在使用固定格式的日期,则应首先设置 日期格式化程序的区域设置适合您的固定格式 格式。在大多数情况下,最好选择的语言环境是en_US_POSIX,a 专门设计用于产生美国英语结果的语言环境 无论用户和系统偏好如何。
编辑: Swift版
dateFormat.locale = NSLocale(localeIdentifier: "en_US_POSIX")