NSDate réglage du fuseau horaire dans swift
comment puis-je retourner un NSDate dans un temps prédéfini zone à partir d'une chaîne
let responseString = "2015-8-17 GMT+05:30"
var dFormatter = NSDateFormatter()
dFormatter.dateFormat = "yyyy-M-dd ZZZZ"
var serverTime = dFormatter.dateFromString(responseString)
println("NSDate : \(serverTime!)")
le code ci-dessus renvoie le temps que
2015-08-16 18:30:00 +0000
OriginalL'auteur Mugunthan Balakrishnan | 2015-08-17
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas.
Une instance de
NSDate
ne comportent pas d'informations sur le fuseau horaire ou le calendrier. Il a juste suffit identifie un point dans le temps universel.Vous pouvez interpréter ce
NSDate
objet dans quel calendrier que vous souhaitez. Swift de la chaîne d'interpolation (la dernière ligne de votre code d'exemple) utilise uneNSDateFormatter
qui utilise UTC (c'est le "+0000" dans la sortie).Si vous voulez le
NSDate
's de la valeur comme une chaîne de caractères dans le courant de calendrier de l'utilisateur, vous devez définir explicitement une date de formateur.Comme j'ai essayé de l'expliquer: La
date
ne pas transmettre l'information sur le fuseau horaire. Si la date renvoyée n'est pas différent de la chaîne d'approvisionnement, seulement elle est exprimée en UTC. Lorsque vous utilisez une date de formateur avec un fuseau horaire réglé sur "GMT+05:30", il serait de retour exactement la même valeur de chaîne que vous utilisez pour l'entrée.OriginalL'auteur Nikolai Ruhe
Le format de la date doit être affecté à la dateFormat propriété de la date de formateur à la place.
Ceci affiche la date en utilisant le fuseau horaire par défaut sur l'appareil. Seulement si vous voulez la sortie en fonction d'un autre fuseau horaire, puis vous ajoutez par exemple
également consulter le lien http://www.brianjcoleman.com/tutorial-nsdate-in-swift/
OriginalL'auteur Saumil Shah
Swift 4.0
OriginalL'auteur Amr