NSDateIntervalFormatter does not use 24hr time preference
Originator: | jeff | ||
Number: | rdar://24639743 | Date Originated: | 2/12/2016 |
Status: | Open | Resolved: | |
Product: | iOS | Product Version: | 9.2.1 |
Classification: | Reproducible: | Always |
Summary: If your device is set to use 24hr time (instead of AM/PM), the NSDateIntervalFormatter will still show times in AM/PM format. NSDateFormatter will correctly format using the 24hr time value. Sample App: https://github.com/jffmrk/NSDateIntervalFormatterBug Steps to Reproduce: 1 - Device is in en_US locale 2 - Go to Settings -> Date & Time 3 - Turn on "24-Hour Time" switch 4 - Format a time interval using NSDateIntervalFormatter Example code: // Setup dates let now = NSDate() let next = NSDate(timeInterval: 14400) // This formats 24-hr preferences correctly let dateFormatter = NSDateFormatter() dateFormatter.dateStyle = .MediumStyle dateFormatter.timeStyle = .LongStyle let str = dateFormatter.stringFromDate(now) NSLog("Date: \(str)") // This ignores the 24-hr preference toggle let dateIntervalFormatter = NSDateIntervalFormatter() dateIntervalFormatter.dateStyle = .MediumStyle dateIntervalFormatter.timeStyle = .LongStyle let strInterval = dateIntervalFormatter.stringFromDate(now, toDate: next) NSLog("DateInterval: \(strInterval)") Expected Results: NSDateIntervalFormatter should format the times using the 24hr format or 12hr format depending on device setting. Actual Results: NSDateIntervalFormatter uses 12hr time format Version: iOS 9.2.1 (13D15)
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!