和之前的XCode 9一样,我没有关于DateFormatter的问题。
随着更新我遇到了一个问题,我似乎无法绕过。
我正忙着将日期从NSString转换为NSDate,但我的代码似乎无法初始化NSDate。
我的代码:
NSString *testdate = @"Sep 20 2017 1:46PM"; // this is how my date looks
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MMM dd yyyy hh:mma"];
NSDate *thisDate = [df dateFromString: testdate]; // this returns nil
我试过以各种方式操作字符串,只有在我转动函数后才发现dateformat问题已经出现。
是否有人发现此问题并提供了可能的解决方案?
编辑:
我唯一拥有的设备是带有iOS 11的iPhone 7(两款不同的设备已经过测试,带有iOS 10的iPhone 7也正常运行)。我有一个iPhone 6 plus和一个iPhone 7 Plus,它们都在iOS 11上,这两个都在工作......时间格式
当我将[NSDate date]转换为具有相同日期格式化程序的字符串时,我的结果是:M09 20 2017 1:46 PM ... - 这似乎是一个日期格式问题(似乎在我更改时间格式时发生了测试),现在正在工作,但问题不是我的问题
答案 0 :(得分:1)
经过仔细研究后,似乎我已经设置了一个DateFormatter,我还需要添加一个Locale来让它工作......我从服务器获得的日期所以我不能改变它,因为也被用在网站上。
我从服务器收到了AM / PM的日期,Locale解决了问题
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MMM dd yyyy hh:mma"];
[df setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
这解决了我遇到的问题。