Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

swift NSDateFormatter not working

I'm trying to format time as follows:

let formatter = NSDateFormatter()
formatter.dateFormat = "hh_mm_ss"
let d = formatter.stringFromDate(NSDate())
println("formatted text is: \(d)")

Suppose that current time is Sep 3, 2014 22:15:30

  1. When I run this script on playground, it prints the time correctly formatted: 22_15_30.
  2. When running this on AppDelegate, it doesn't print the time formatted: 22:15:30

I'm using xcode 6 beta 5... Am I missing something? Why stringFromDate doesn't return the correct date formatted?

EDIT: I'm using xcode 6 beta 6.

Thanks!

like image 561
Aнгел Avatar asked Mar 19 '23 13:03

Aнгел


1 Answers

The 24-hour format is "HH", not "hh".

The reason that it works in the Playground may be that user defined settings can override the 12/24-format choice, compare What is the best way to deal with the NSDateFormatter locale "feechur"?. To be on the safe side, set the "en_US_POSIX" locale for the date formatter:

formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")

// Swift 3:
formatter.locale = Locale(identifier: "en_US_POSIX")
like image 74
Martin R Avatar answered Mar 25 '23 06:03

Martin R