Как установить переменные типа Date в начальное значение? - PullRequest
1 голос
/ 18 марта 2019

Я не могу найти способ установить переменные типа Date в начальное или пустое значение (не использовать пользовательское начальное значение ... как '0001/01/01').

Like String typeможно установить String.init () или "" в его значение, поэтому можно использовать isEmpty (), чтобы определить, что он пуст, но как это сделать с переменными типа Date?

Ответы [ 4 ]

1 голос
/ 18 марта 2019

Это зависит от того, чего вы собираетесь достичь.

Естественно, нет пустой даты.

  • Если значение даты не имеет значения, объявите его с текущей датой

    let date = Date()
    
  • Если в далеком прошлом или будущем дата, как предполагается, совершенно не указана, существует

    let date = Date.distantPast
    
    let date = Date.distantFuture
    
  • Если дата может быть конкретной датой, используйте контрольные даты

    let date = Date(timeIntervalSince1970: 0) // 1970/1/1
    
    let date = Date(timeIntervalSinceReferenceDate: 0) // 2001/1/1
    
0 голосов
/ 18 марта 2019

Очевидный ответ: пустых нет Date.

A String имеет 3 возможных состояния:

  1. есть какая-то строка, например "abc"
  2. есть пустая строка, то есть ""
  3. нет строки, то есть nil.

В случае строк регистры 2 и 3 обычно взаимозаменяемы. Это означает, что мы можем использовать либо пустую строку, либо nil, чтобы обозначать то же самое.

Нет пустых значений Date, поэтому, если мы хотим представить состояние при отсутствии Date, мы должны использовать nil.

var date: Date? = nil
0 голосов
/ 18 марта 2019

Вы можете объявить Date = nil Это означает, что когда мы присваиваем значение таким данным, как

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

ИЛИ

Используйте следующие коды для установки датыиз строкового формата

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")
}

Надеюсь, это полезно для вас

0 голосов
/ 18 марта 2019

Вы можете инициализировать объект Date его конструктором по умолчанию.

var date = Date()  

Приведенная выше строка инициализирует объект date с текущей датой.
Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...