2 votes

Obtenir le fuseau horaire (GMT) en Swift

J'ai une application qui affiche les fuseaux horaires de différents pays. Actuellement, le code ressemble à ceci :

if indexPath.row == 0 || indexPath.row == 1 || indexPath.row == 2 || indexPath.row == 6 || indexPath.row == 7{
    cell.aseanDate.text = dayFormatter.string(from: Date() as Date)
    cell.aseanTime.text = dateFormatter2.string(from: Date() as Date)
    cell.aseanTime.textAlignment = .center
    cell.aseanTimeZone.text = "\(TimeZone(abbreviation: "UTC+07")!)"
}

L'heure elle-même est affichée correctement mais sous aseanTimezone.text il affiche GMT +0800(fixe)

Est-il possible de le modifier pour qu'il affiche le GMT mais sans le premier zéro et le mot (fixe) ?

5voto

satish Points 116

Je pense que vous cherchez cette méthode

localizedName(for style: NSTimeZone.NameStyle, locale: Locale?)

Mais, il enlèvera aussi les zéros de fin de ligne. GMT+7

TimeZone(abbreviation: "UTC+07")!.localizedName(for: .shortStandard, locale: nil)! // => GMT+7

Autres options disponibles

.standard
.shortStandard
.daylightSaving
.shortDaylightSaving
.generic
.shortGeneric

0voto

Essayez le code ci-dessous

if indexPath.row == 0 || indexPath.row == 1 || indexPath.row == 2 || indexPath.row == 6 || indexPath.row == 7 {
    let newDate = Date()
    formatter.dateStyle = .none
    formatter.timeStyle = .short
    formatter.dateFormat = "hh:mm a"
    formatter.timeZone = TimeZone(identifier:"Your timezoon string here!!")
    cell.aseanTimeZone.text = = formatter.string(from: newDate)
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X