web-dev-qa-db-fra.com

xcode Swift am / pm au format 24 heures)

J'essaie de convertir une heure au format am/pm en une heure au format 24 heures

6:35 PM to 18:35

J'ai essayé ce code sur un terrain de jeu mais cela ne semble pas fonctionner si je mets le temps seul

let dateAsString = "02/12/15, 6:35 PM"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH"
let date = dateFormatter.dateFromString(dateAsString) //returns nil

Est ce que quelqu'un sait comment accomplir cela?

Je vous remercie.

49
user3772

Convertissez-le simplement en une date utilisant NSDateFormatter et le format "h: mm a" et convertissez-le en une chaîne utilisant le format "HH: mm". Découvrez ceci guide de formatage de date pour vous familiariser avec ce matériel.

enter image description here

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!)
121
Ian

Swift

format horaire 24 heures à 12 heures

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)

la sortie sera formatée 12 heures Date: 13h15

Format horaire 12 heures à 24 heures

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)

la sortie sera au format 24 heures Date: 13h15

44

Vous trouverez ci-dessous la version Swift 3 de la 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)
5
user550088

Swift version 3.0.2, Xcode version 8.2.1 (8C1002) (format 12 heures):

func getTodayString() -> String{

        let formatter = DateFormatter()
        formatter.dateFormat = "h:mm:ss a "
        formatter.amSymbol = "AM"
        formatter.pmSymbol = "PM"

        let currentDateStr = formatter.string(from: Date())
        print(currentDateStr)
        return currentDateStr 
}

OUTPUT: 00:41:42 AM

N'hésitez pas à commenter. Merci

3
Shobhakar Tiwari

Voici le code pour une autre façon

Pour Swift

 func amAppend(str:String) -> String{
    var temp = str
    var strArr = str.characters.split{$0 == ":"}.map(String.init)
    var hour = Int(strArr[0])!
    var min = Int(strArr[1])!
    if(hour > 12){
        temp = temp + "PM"
    }
    else{
        temp = temp + "AM"
    }
    return temp
}
1
Rishabh Dugar

Swift 3 *

Code à convertir 12 heures (à savoir AM et PM) en 24 heures format qui comprend

Heures: Minutes: Secondes: AM/PM à Heures: Minutes: Secondes

func timeConversion24(time12: String) -> String {
    let dateAsString = time12
    let df = DateFormatter()
    df.dateFormat = "hh:mm:ssa"

    let date = df.date(from: dateAsString)
    df.dateFormat = "HH:mm:ss"

    let time24 = df.string(from: date!)
    print(time24)
    return time24
}

Entrée

19h05h45

sortie

19:05:45

De même

Code à convertir 24 heures à 12 heures (c'est-à-dire AM et PM) format qui comprend

Heures: Minutes: Secondes à Heures: Minutes: Secondes: AM/PM

func timeConversion12(time24: String) -> String {
    let dateAsString = time24
    let df = DateFormatter()
    df.dateFormat = "HH:mm:ss"

    let date = df.date(from: dateAsString)
    df.dateFormat = "hh:mm:ssa"

    let time12 = df.string(from: date!)
    print(time12)
    return time12
}

Entrée

19:05:45

sortie

19h05h45

1
Anupam Mishra
let calendar = Calendar.current
let hours    = calendar.component(.hour, from: Date())
let minutes  = calendar.component(.minute, from: Date())
let seconds  = calendar.component(.second, from: Date())
0
dmitriy koliush

J'utilise une fonction ici dans mon cas par laquelle je mets à jour une étiquette avec le format d'heure normal et après cela, je stocke le format de 24 h de l'heure sélectionnée pour effectuer d'autres tâches.

Voici mon 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.
}

Après avoir écrit cette fonction, vous pouvez appeler cette fonction pour choisir l’heure à partir du sélecteur de date/heure.

Merci, j'espère que cela a aidé.

0
onCompletion