2017-03-03 3 views
0

Cette étiquette fonctionne parfaitement, bien que je n'aie pas besoin de la date, je vais avoir la date dans une étiquette séparée. J'ai juste besoin d'une étiquette qui affiche l'heure. Voilà ce que j'ai pour une étiquette date/heure:J'ai besoin de mon étiquette de date/heure pour ne pas avoir la date dedans. Quelqu'un sait comment pour IOS?

func updateTime() { 
    TimeLabel.text = DateFormatter.localizedString(from: Date(), dateStyle: DateFormatter.Style.medium, timeStyle: DateFormatter.Style.short) 

} 

Swift 3, IOS

Répondre

2

Espérons que cela aidera à SWIFT 3 Son travail dans mon code laissez-moi savoir que vous avez encore un problème.

static var TIME_FORMAT: String = "hh:mm a" 
var date = Date() 
    let formatter = DateFormatter() 
      formatter.dateFormat = TIME_FORMAT 
      let time = formatter.string(from: date) 
      TimeLabel.text=time 
+0

merci! Savez-vous comment faire geler mon temps ou arrêter de compter? J'ai besoin de savoir à quelle heure j'ai ouvert le contrôleur de vue – DanielG

+0

@DanielG Créer une autre question et ping son lien ici. Je ne suis pas capable de comprendre votre question dans un paquebot ou d'expliquer votre question avec le code. –

+0

@DanielG. Je pense créer une variable statique dans helper ou exemple de classe constante: openTimeABCVC et mettre à jour sa valeur avec le temps sur viewload de votre viewcontroller et utiliser cette heure où vous voulez mettre à jour. –

2

Il suffit de changer le style de .none:

func updateTime() { 
    TimeLabel.text = DateFormatter.localizedString(from: Date(), dateStyle: DateFormatter.Style.none, timeStyle: DateFormatter.Style.short) 
} 
1

Pour supprimer la date, réglez simplement le style de date sur none!

TimeLabel.text = DateFormatter.localizedString(
    from: Date(), dateStyle: .none, timeStyle: .short) 

Le docs pour .none dit que

Indique pas de style.

Je pense que c'est la raison pour laquelle vous êtes confus. Vous pensiez que none représente juste une date sans style, c'est-à-dire pas "élégant" et il apparaîtra toujours dans la chaîne. Mais ce n'est pas vrai. none fait littéralement disparaître la date.

+0

! Y at-il un moyen de ne pas le faire vivre ou de compter avec le temps réel? Est-ce possible si mon temps devait geler une fois que j'ouvre le contrôleur de vue avec cette étiquette de temps? – DanielG

+0

Il y a! @DanielG Détermine d'abord combien de secondes il reste dans la minute actuelle. Mettez à jour l'étiquette après tant de secondes. Après cela, faites une minuterie qui met à jour l'étiquette chaque minute. – Sweeper

+0

merci! j'ai fini par mettre "repeats" à "false" Timer.scheduledTimer (timeInterval: 0.1, cible: self, sélecteur: Selector ("updateTime"), userInfo: nil, répète: false) – DanielG