которая возвращает дату, вот форматтер для даты и времени
private let dateFormatter: DateFormatter = {
let formatter = DateFormatter()
formatter.timeZone = TimeZone.autoupdatingCurrent
formatter.timeStyle = .none
formatter.dateStyle = .medium
return formatter
}()
private let timeFormatter: DateFormatter = {
let formatter = DateFormatter()
formatter.timeZone = TimeZone.autoupdatingCurrent
formatter.timeStyle = .short
formatter.dateStyle = .none
return formatter
}()
Отображаю в лыбе данные для даты и времени через этот форматтер
self?.dateStartLabel.text = self?.dateFormatter.string(from: date)
self?.timeStartLabel.text = self?.timeFormatter.string(from: date)
Если все гут и пользователь жмет сохранить то я склеиваю строки из лейблов, форматирую в дату и сохраняю
let dateSetInLabelsStr = "\(dateStartLabel.text ?? "") \(timeToSaveFormatted ?? "")"
let weightDateFormatter = DateFormatter()
weightDateFormatter.locale = Locale(identifier: "en_US_POSIX")
weightDateFormatter.dateFormat = "MMM d, yyyy HH:mm:ss a"
if let dateFromLabels = weightDateFormatter.date(from: dateSetInLabelsStr) {
weightObject.controlDate = dateFromLabels
}
ну weightDateFormatter нужно сообщить что в тексте используется таймзона пользователя. во-вторых не понятно каким образом пользователь меняет дату. как она попадает в лейблы
Обсуждают сегодня