Agung
Agung

Reputation: 13813

how to make 24 hours time format from string in Swift

I want to convert a string that was generated by the user to a Date data type. I want the time to be in 24-hour format

let dateFormatter = DateFormatter()
let timeAsString : String = "22:30"
dateFormatter.dateFormat = "HH:mm"

let timeFromString = dateFormatter.date(from: timeAsString)

result : "Jan 1, 2000 at 10:30 PM"

but the result is in 12-hour format. How can I get 22:30 as a Date data type?

Upvotes: 2

Views: 16721

Answers (3)

Krunal
Krunal

Reputation: 79656

You code is absolutely correct, there no problem in your code. String HH in date format represent 24 hours time display format.

But developer (application) has no control over time format. You can set date format string supporting 24 hours time but if user has (not enabled) turned of 24 hours support from device then it will display time for 12 hours format.

Check your simulator/mac system/iPhone device time format and set it for 24 hours display.

Refer this apple document for 24 hours time support: Date Formatters

The representation of the time may be 13:00. In iOS, however, if the user has switched 24-Hour Time to Off, the time may be 1:00 pm.

Upvotes: 3

Sathish
Sathish

Reputation: 69

func convertToString(of dateTo: Date) -> String {

  let dateFormatter = CustomDateFormatter()

  //Your New Date format as per requirement change it own
  dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" 
  let newDate: String = dateFormatter.string(from: dateTo) //pass Date here
  //  print(newDate) //New formatted Date string

  return newDate
 }

Upvotes: 1

Shan Ye
Shan Ye

Reputation: 2662

Date has no format, so only can change the string converted from the date

Swift 4

 let dateFormatter = DateFormatter()
 dateFormatter.dateFormat = "HH:mm"
 let newDateString = dateFormatter.string(from: yourDate)

for different date format, you can check nsdateformatter.com

Upvotes: 14

Related Questions