Je viens de commencer avec la cour de récréation. J'essaie de créer une application simple.
J'ai créé un objet date comme celui-ci:
var date = NSDate()
Comment puis-je obtenir l'heure actuelle? Dans d'autres langues, je peux faire quelque chose comme ça:
var hour = date.hour
Mais je ne trouve pas de propriétés / méthodes comme ça. Je l' ai trouvé une méthode, dateWithCalendarFormat
. Dois-je l'utiliser? Si c'est le cas, comment?
let components = calendar.components(.NSCalendarUnit.Year.union(NSCalendarUnit.Minute), fromDate: date)
, la barre oblique verticale ne puisse plus être utilisée ici.let components = calendar.components(NSCalendarUnit.Year.union(NSCalendarUnit.Minute), fromDate: date)
supprimé le supplément '.' avant NSCalendarUnitlet components = calendar.components([ .Hour, .Minute, .Second], fromDate: date)
Testé avec Swift 4
Obtention de la date et de l'heure actuelles
Vous pouvez obtenir la date et l'heure actuelles aussi simplement que ceci:
Cependant,
Date
est un nombre à virgule flottante de 64 bits mesurant le nombre de secondes depuis la date de référence du 1er janvier 2001 à 00:00:00 UTC . Je peux voir ce nombre pour le datetime actuel en utilisantAu moment d'écrire ces lignes, il est revenu
497626515.185066
, probablement pas exactement ce que vous recherchez. Continue de lire.Création d'une autre date et heure
Méthode 1
Si vous connaissez le nombre de secondes avant ou après la date de référence, vous pouvez l'utiliser.
Méthode 2
Bien sûr, il serait plus facile d'utiliser des choses comme des années, des mois, des jours et des heures (plutôt que des secondes relatives) pour faire un
Date
. Pour cela, vous pouvez utiliserDateComponents
pour spécifier les composants, puisCalendar
pour créer la date. LeCalendar
donne leDate
contexte. Sinon, comment pourrait-il savoir dans quel fuseau horaire ou calendrier l'exprimer?Vous trouverez d'autres abréviations de fuseau horaire ici . Si vous laissez ce champ vide, la valeur par défaut consiste à utiliser le fuseau horaire de l'utilisateur.
Méthode 3
La manière la plus succincte (mais pas nécessairement la meilleure) pourrait être d'utiliser
DateFormatter
.Les normes techniques Unicode montrent d' autres formats que
DateFormatter
supports.Affichage de la date et de l'heure
Méthode 1
Si vous souhaitez simplement afficher certains composants de la date ou de l'heure, vous pouvez utiliser
CalendarUnit
pour spécifier les composants à partir desquels vous souhaitez extraireDate
.Voir aussi cette réponse .
Méthode 2
La méthode 1 vous a donné les composants, mais ce serait beaucoup de travail de formater ces nombres pour chaque style, langue et région. Et vous n'en avez pas besoin. Cela a déjà été fait pour vous avec la
DateFormatter
classe.Voici une suite du code ci-dessus qui montre plus d'options de formatage:
Gardez à l'esprit, cependant, que c'est pour l'anglais avec la région définie aux États-Unis. Pour les autres langues et régions, la mise en forme sera différente.
Une étude plus approfondie
la source
Vous pouvez également utiliser la méthode pratique de NSDateFormatter, par exemple,
la source
Swift facilite la création et l'utilisation d'extensions. Je crée un
sharedCode.swift
fichier et y mets des énumérations, des extensions et d'autres éléments amusants. J'ai créé uneNSDate
extension pour ajouter des fonctionnalités typiques qui sont laborieuses et laides à taper encore et encore:en utilisant cette extension, vous pouvez maintenant faire quelque chose comme:
Qui, à 11 h 51, écrirait:
la source
Réponse de Swift 2:
la source
Swift 4
PRODUCTION
2018-mai-01 10:41:31
la source
Swift 3:
PS - Je ne sais pas exactement ce que signifie la question en obtenant l'heure actuelle (et l'heure) comme heure de date, mais j'espère que ce qui précède devrait expliquer suffisamment pour répondre à la question.
la source
Avec Swift 5,
Foundation
offre de nombreuses façons d'obtenir la valeur horaire d'unDate
objet. Selon vos besoins, vous pouvez choisir l'un des quatre extraits de code Playground suivants .#1. Utilisation de la
Calendar
dateComponents(_:from:)
méthodeCalendar
a une méthode appeléedateComponents(_:from:)
.dateComponents(_:from:)
a la déclaration suivante:Usage:
# 2. Utilisation de la
Calendar
component(_:from:)
méthodeCalendar
a une méthode appeléecomponent(_:from:)
.component(_:from:)
a la déclaration suivante:Usage:
# 3. Utilisation de la
DateFormatter
dateFormat
propriétéDateFormatter
a une propriété appeléedateFormat
.dateFormat
a la déclaration suivante:Usage:
# 4. Utilisation de la
Dateformatter
setLocalizedDateFormatFromTemplate(_:)
méthodeDateformatter
a une méthode appeléesetLocalizedDateFormatFromTemplate(_:)
.setLocalizedDateFormatFromTemplate(_:)
a la déclaration suivante:Usage:
la source
si vous avez juste besoin de l'heure du jour
la source
Dans Swift 3,
la source
let calendar = Calendar.current; let unitFlags: Set<Calendar.Component> = Set<Calendar.Component ([.hour]); let components = calendar.dateComponents(unitFlags, from: self)
Utilisation du formateur de date -Swift 3.0
Mettre à jour la date et l'heure toutes les secondes
Remarque: DateAndTime dans le code Timer est le nom de la classe.
la source
Je sais qu'il y a beaucoup de réponses mais je pense que la mienne peut être plus pratique pour beaucoup
la source
Vous pouvez essayer ceci
Maintenant, appelez cette méthode et recevez la date avec l'heure, la minute et la seconde
la source
Vous pouvez utiliser en swift 4 ou 5 comme ci-dessous
Ouput sera comme ci-dessous
la source
Xcode 8.2.1 • Swift 3.0.2
la source
Date().hour
Développant la solution épique et concise de noiiv , voici l'implémentation encore plus concise de Swift 3/4:
Swift 3/4
En outre, en étendant l'extension de Leo Dabus, nous pouvons avoir:
Et utilisez-le comme ceci:
la source
Date
objet. La méthode du composant Btw Calendar est plus appropriée pour un composant uniqueDateComponents.year
accesseur estInt?
component
méthode pour ces accesseurspour seulement la date dans un format spécifique
la source
Swift 5
et fonction d'appel printTimestamp ()
la source
Vous pouvez créer une extension sur
Date
, de cette façon, vous pouvez facilement l'appeler dans d'autres fichiers. Voici un exemple d'une extension de date qui utilise une propriété calculée.Il l'imprimera: "Aujourd'hui, 16h55"
la source
Vous pouvez utiliser Swift4 ou Swift 5 comme ci-dessous:
sortie comme:
la source
Dans le cas où vous devez formater la réponse d'une manière particulière, vous pouvez facilement utiliser cette méthode, la valeur par défaut = "jj-MM-aaaa".
L'obtention de la date d'aujourd'hui peut désormais être effectuée à l'aide de
la source
SWIFT 4:
la source
la source
Voici l' extension SWIFT pour obtenir l'heure de votre emplacement actuel (GMT).
Obtenez maintenant le temps: -
la source
Fonctionne avec Swift 5 (Xcode 10 et Xcode 11) (depuis la France UTC)
Si vous souhaitez afficher uniquement la date, définissez
formatter.dateFormat
Pour afficher uniquement les heures, passez
formatter.dateFormat
àNe pas oublier d'ajouter
getCurrentDateTime()
surviewDidLoad
.la source
Vous pouvez obtenir de Dateformatter
la source