Формирование даты, добавление дней к дате
Вот мой первый вопрос;
import Foundation
let date1 = Date()
let date2 = Date().addingTimeInterval(3600)
if date1 == date2
{
print("equals")
}
else if date1 > date2
{
print("date1 is bigger")
}
else if date1 < date2
{
print("date2 is bigger")
}
Это дает вывод ниже, если я пишу печать ("date1") или печать ("date2")
2018-09-10 08:56:49 +0000
Я хотел бы написать тот же пример, но date1
а также date2
должны включать эти 2 свойства:
формат: "dd.MM.yyyy"
локали: "tr_TR"
Кроме того, вот мой второй вопрос:
let date2 = Date().addingTimeInterval(3600)
Как известно, это 3600 добавочной стоимости за час. Как я могу добавить один день? 24*3600? Есть ли кратчайший путь?
3 ответа
Решение
Как сказал @Larme, вы можете посмотреть в Calendar
,
var dateComponents = DateComponents()
dateComponents.day = 1
guard let date = Calendar.current.date(byAdding: dateComponents, to: Date()) else { // Adding date components to current day.
fatalError("date not found")
}
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .short // dd.MM.yyyy
dateFormatter.locale = Locale(identifier: "tr_TR") // Your preferred locale
let dateWithLocale = dateFormatter.string(from: date)
print(date)
Ваше сравнение может быть сделано с помощью Date
объекты. Только когда вам нужно распечатать его или использовать как String
, вам нужно будет сделать форматирование.
Пытаться
extension Date {
func addDays(_ days: Int) -> Date {
Calendar.autoupdatingCurrent.date(byAdding: .day, value: days, to: self)!
}
}
Попробуй это
let today = Date() // OR your date here
let tomorrow = Calendar.current.date(byAdding: .day, value: 1, to: today)
let yesterday = Calendar.current.date(byAdding: .day, value: -1, to: today)