2017-10-18 7 views
1

J'économise du temps sur Firebase, puis j'autorise l'utilisateur à recharger l'heure qui a été sauvegardée. Lorsque je retire les données du serveur (sous la forme d'une chaîne de caractères), puis que l'heure est convertie en type Date, elle passe de 12:00 (Midi) à 00:00 (Minuit).Conversion de l'heure de la chaîne à la date: 12 devient 00 swift

Je peux voir les données sur ma base de données en temps réel Firebase et il est clairement indiqué midi et non minuit.

Firebase Image

Voici le code que je utilise pour extraire les données du dictionnaire que je l'ai téléchargé à partir de la base de données en temps réel.

if let gtt1hourLabTime = patientDataDictionary["1 Hour lab Time"] as? String { 
     if let realgtt1HourLabTime = timeFormatTool(gtt1hourLabTime) { 
       print(realgtt1HourLabTime) 
       patientVC.gtt1HourLabTime = realgtt1HourLabTime 
     } 
} 

Voici mon format de l'heure Outil:

func timeFormatTool(_ dateStr: String) -> Date? { 
     let simpleDateFormat = DateFormatter() 
     simpleDateFormat.dateFormat = "hh:mm" 

     let date = simpleDateFormat.date(from: dateStr) 
     return date 
} 

Lorsque le temps est imprimé, il est comme ça:

2000-01-01 00:18:00 +0000 
+1

vous devez utiliser 'HH: mm' HH signifie 00-23. 'hh' est à partir de 1-12 am format –

Répondre

2

Parce que le format que vous utilisez est hh:mm après 11: 59 le format remonte à 00:00. Si vous voulez le format 24h, qui comprend 12: xx, il vous suffit de changer votre format de date à ceci:

simpleDateFormat.dateFormat = "HH:mm"