2
votes

Comment définir les variables de type Date à la valeur initiale?

Je ne trouve pas le moyen de définir les variables de type Date sur une valeur initiale ou vide (ne pas utiliser une valeur initiale définie par l'utilisateur ... comme "0001/01/01").

Comme le type String peut définir String.init () ou "" à sa valeur, vous pouvez donc utiliser isEmpty () pour déterminer qu'il est vide, mais comment faire cela avec des variables de type Date?


0 commentaires

4 Réponses :


0
votes

Vous pouvez initialiser un objet Date par son constructeur par défaut.

var date = Date()  

La ligne ci-dessus initialisera l'objet date avec la date actuelle.
J'espère que cela aide


0 commentaires

0
votes

Vous pouvez déclarer une Date = nil Ce qui signifie que lorsque nous attribuons une valeur à des données comme

let dateFormatterGet = DateFormatter()
dateFormatterGet.dateFormat = "yyyy-MM-dd HH:mm:ss"

let dateFormatterPrint = DateFormatter()
dateFormatterPrint.dateFormat = "MMM dd,yyyy"

if let date = dateFormatterGet.date(from: "2016-02-29 12:24:26") {
    print(dateFormatterPrint.string(from: date))
} else {
   print("There was an error decoding the string")
}

OU autre

Utilisez les codes suivants pour définir une date au format chaîne p >

var date = Date() // means its current data

J'espère que cela vous sera utile


0 commentaires

1
votes

Cela dépend de ce que vous allez accomplir.

Naturellement, il n'y a pas de date vide .

  • Si la valeur de la date n'est pas pertinente, déclarez-la avec la date actuelle

    let date = Date(timeIntervalSince1970: 0) // 1970/1/1
    
    let date = Date(timeIntervalSinceReferenceDate: 0) // 2001/1/1
    
  • Si la date est censée être tout à fait indéterminée dans un passé ou un futur lointain, il y a

    let date = Date.distantPast
    
    let date = Date.distantFuture
    
  • Si la date peut être une date spécifique, utilisez les dates de référence

    let date = Date()
    


3 commentaires

Je suis contre l'utilisation de la date actuelle comme espace réservé. J'ai déjà vu trop de bugs causés par ça. Il est préférable d'utiliser nil .


@Sulthan Quoi de pire, la date actuelle ou l'option? J'ai déjà vu trop de bogues causés par les options. 😉


J'ai vu des gens utiliser Date () par défaut lorsque l'analyse d'une date échoue. Ensuite, une date invalide a été montrée à l'utilisateur et ils n'ont même pas remarqué :) Je pense que Date () ne devrait pas être utilisé dans les situations où nous voulons vraiment dire "il n'y a pas de date significative".



0
votes

La réponse évidente est qu'il n'y a pas de Date vide.

Une String a 3 états possibles:

  1. il y a une chaîne, par exemple "abc"
  2. il y a une chaîne vide, c'est-à-dire ""
  3. il n'y a pas de chaîne, c'est-à-dire nil .

Avec les chaînes, les cas 2 et 3 sont généralement interchangeables. Cela signifie que nous pouvons utiliser une chaîne vide ou nil pour signifier la même chose.

Il n'y a pas de valeurs Date vides, donc si nous voulons représente l'état lorsqu'il n'y a pas de Date , nous devons utiliser nil.

var date: Date? = nil

p>


0 commentaires