我有这个代码:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm Z"];
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];
[dateFormat setLocale:[NSLocale currentLocale]];
NSString *sDate = [dateFormat stringFromDate:_datePicker];
_datePicker来自此,datePicker是一个UIDatePicker
_datePicker = datePicker.date;
可以肯定,这在iOS 7中可以正常运行,现在我正在9.1中进行测试
因此,如果将电话设置设置为以24h格式显示时间就可以了,但是如果我将设置更改为无24h格式,则我会产生疏远行为:
如果设置为24h,则输出为:
但是,如果我将其更改为非24h,则:
如您所见,就像将两种格式组合在一起一样,例如将下午1点的13点添加到131:00或晚上6点将是186:00。
是否有解决方法可以始终以24h格式获取时间?
提前致谢。
最佳答案
嗨,我在另一页中已经嘲笑了这种方法,并且我将代码更改为:
NSDateFormatter *rfc3339DateFormatter = [[NSDateFormatter alloc] init];
NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[rfc3339DateFormatter setLocale:enUSPOSIXLocale];
[rfc3339DateFormatter setDateFormat:@"yyyy-MM-dd HH:mm Z"];
[rfc3339DateFormatter setTimeZone:[NSTimeZone localTimeZone]];
NSString *sDate = [rfc3339DateFormatter stringFromDate: _datePicker];
现在工作正常,但是我不确定这是正确的方法。
我希望这对以后的人有所帮助。
更新: This is where I got the code.