Aquí está mi primera pregunta;

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

Da salida a continuación si escribo print ("date1") o print ("date2")

2018-09-10 08:56:49 +0000

Me gustaría escribir el mismo ejemplo, pero date1 y date2 deben incluir estas 2 propiedades:

Formato: "dd.MM.yyyy"

Configuración regional: "tr_TR"

Además de esto, aquí está mi segunda pregunta:

let date2 = Date().addingTimeInterval(3600)

Como saben, este valor de 3600 agrega una hora. ¿Cómo puedo agregar un día? 24 * 3600? ¿Hay algún camino más corto?

1
mannyCalavera 10 sep. 2018 a las 12:36

3 respuestas

La mejor respuesta

Como dijo @Larme, es posible que desee consultar 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)

Su comparación se puede hacer usando los objetos Date. Solo cuando necesite imprimirlo o usarlo como String, deberá formatear.

0
Rakesha Shastri 10 sep. 2018 a las 09:50

Prueba este

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)
0
Nikunj Kumbhani 10 sep. 2018 a las 09:50

Tratar

extension Date {
  func addDays(_ days: Int) -> Date {
    Calendar.autoupdatingCurrent.date(byAdding: .day, value: days, to: self)!
  }
}
1
regina_fallangi 10 sep. 2018 a las 09:43