Xcode swift am/pm time to 24 hour format

后端 未结 11 1062
甜味超标
甜味超标 2020-11-28 04:40

I am trying to convert a am/pm format time to a 24 hour format time

6:35 PM to 18:35

I tried this piece of code on playground but it doesnt

相关标签:
11条回答
  • 2020-11-28 05:19

    Use this function for date conversion , its working fine when your device in 24/12 hr formate

    func convertDateFormater(fromFormate:String,toFormate:String,_ dateString: String) -> String{
        let formatter = DateFormatter()
        formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") as Locale
        formatter.dateFormat = fromFormate
        let date = formatter.date(from: dateString)
        formatter.dateFormat = toFormate
        return  date != nil ? formatter.string(from: date!) : ""
    }
    
    0 讨论(0)
  • 2020-11-28 05:20

    Below is the swift 3 version of the solution -

    let dateAsString = "6:35:58 PM"
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "h:mm:ss a"
    let date = dateFormatter.date(from: dateAsString)
    
    dateFormatter.dateFormat = "HH:mm:ss"
    let date24 = dateFormatter.string(from: date!)
    print(date24)
    
    0 讨论(0)
  • 2020-11-28 05:21

    Here is the answer with more extra format.

    ** Xcode 12, Swift 5.3 **

    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "HH:mm:ss"
    var dateFromStr = dateFormatter.date(from: "12:16:45")!
    
    dateFormatter.dateFormat = "hh:mm:ss a 'on' MMMM dd, yyyy"
    //Output: 12:16:45 PM on January 01, 2000
    
    dateFormatter.dateFormat = "E, d MMM yyyy HH:mm:ss Z"
    //Output: Sat, 1 Jan 2000 12:16:45 +0600
    
    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
    //Output: 2000-01-01T12:16:45+0600
    
    dateFormatter.dateFormat = "EEEE, MMM d, yyyy"
    //Output: Saturday, Jan 1, 2000
    
    dateFormatter.dateFormat = "MM-dd-yyyy HH:mm"
    //Output: 01-01-2000 12:16
    
    dateFormatter.dateFormat = "MMM d, h:mm a"
    //Output: Jan 1, 12:16 PM
    
    dateFormatter.dateFormat = "HH:mm:ss.SSS"
    //Output: 12:16:45.000
    
    dateFormatter.dateFormat = "MMM d, yyyy"
    //Output: Jan 1, 2000
    
    dateFormatter.dateFormat = "MM/dd/yyyy"
    //Output: 01/01/2000
    
    dateFormatter.dateFormat = "hh:mm:ss a"
    //Output: 12:16:45 PM
    
    dateFormatter.dateFormat = "MMMM yyyy"
    //Output: January 2000
    
    dateFormatter.dateFormat = "dd.MM.yy"
    //Output: 01.01.00
    
    //Output: Customisable AP/PM symbols
    dateFormatter.amSymbol = "am"
    dateFormatter.pmSymbol = "Pm"
    dateFormatter.dateFormat = "a"
    //Output: Pm
    
    // Usage
    var timeFromDate = dateFormatter.string(from: dateFromStr)
    print(timeFromDate)
    
    0 讨论(0)
  • 2020-11-28 05:24

    Just convert it to a date using NSDateFormatter and the "h:mm a" format and convert it back to a string using the "HH:mm" format. Check out this date formatting guide to familiarize yourself with this material.

    let dateAsString = "6:35 PM"
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "h:mm a"
    let date = dateFormatter.dateFromString(dateAsString)
    
    dateFormatter.dateFormat = "HH:mm"
    let date24 = dateFormatter.stringFromDate(date!)
    
    0 讨论(0)
  • 2020-11-28 05:24

    I am using a function here in my case by which I am updating a label with the normal time format and after that I am storing the selected time's 24hr format to do some another tasks..

    Here is my code...

    func timeUpdate(sender: NSDate)
    {
        let timeSave = NSDateFormatter() //Creating first object to update time label as 12hr format with AM/PM
        timeSave.timeStyle = NSDateFormatterStyle.ShortStyle //Setting the style for the time selection.
        self.TimeShowOutlet.text = timeSave.stringFromDate(sender) // Getting the string from the selected time and updating the label as 1:40 PM
        let timeCheck = NSDateFormatter() //Creating another object to store time in 24hr format.
        timeCheck.dateFormat = "HH:mm:ss" //Setting the format for the time save.
        let time = timeCheck.stringFromDate(sender) //Getting the time string as 13:40:00
        self.timeSelectedForCheckAvailability = time //At last saving the 24hr format time for further task.
    }
    

    After writing this function you can call this where you are choosing the time from date/time picker.

    Thanks, Hope this helped.

    0 讨论(0)
  • 2020-11-28 05:25

    Swift 3

    Time format 24 hours to 12 hours

    let dateAsString = "13:15"
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "HH:mm"
    
    let date = dateFormatter.date(from: dateAsString)
    dateFormatter.dateFormat = "h:mm a"
    let Date12 = dateFormatter.string(from: date!)
    print("12 hour formatted Date:",Date12)
    

    output will be 12 hour formatted Date: 1:15 PM

    Time format 12 hours to 24 hours

    let dateAsString = "1:15 PM"
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "h:mm a"
    
    let date = dateFormatter.date(from: dateAsString)
    dateFormatter.dateFormat = "HH:mm"
    
    let Date24 = dateFormatter.string(from: date!)
    print("24 hour formatted Date:",Date24)
    

    output will be 24 hour formatted Date: 13:15

    0 讨论(0)
提交回复
热议问题