tabla - ¿Cómo obtener tiempo(hora, minuto, segundo) en Swift 3 usando NSDate?
restar horas minutos y segundos online (9)
En Swift 3.0, Apple eliminó el prefijo ''NS'' e hizo todo simple. A continuación se muestra la forma de obtener hora, minuto y segundo de la clase ''Fecha'' (alternativa NSDate)
let date = Date()
let calendar = Calendar.current
let hour = calendar.component(.hour, from: date)
let minutes = calendar.component(.minute, from: date)
let seconds = calendar.component(.second, from: date)
print("hours = /(hour):/(minutes):/(seconds)")
Como estos, puede obtener la era, el año, el mes, la fecha, etc. pasando el correspondiente.
¿Cómo puede determinar la hora, minuto y segundo de la clase NSDate en Swift 3?
En Swift 2:
let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.Hour, fromDate: date)
let hour = components.hour
Swift 3?
En Swift 3 puedes hacer esto,
let date = Date()
let hour = Calendar.current.component(.hour, from: date)
Esto puede ser útil para aquellos que desean usar la fecha actual en más de una clase.
extension String {
func getCurrentTime() -> String {
let date = Date()
let calendar = Calendar.current
let year = calendar.component(.year, from: date)
let month = calendar.component(.month, from: date)
let day = calendar.component(.day, from: date)
let hour = calendar.component(.hour, from: date)
let minutes = calendar.component(.minute, from: date)
let seconds = calendar.component(.second, from: date)
let realTime = "/(year)-/(month)-/(day)-/(hour)-/(minutes)-/(seconds)"
return realTime
}
}
Uso
var time = ""
time = time.getCurrentTime()
print(time) // 1900-12-09-12-59
Para mejor útil creo esta función:
func dateFormatting() -> String {
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEEE dd MMMM yyyy - HH:mm:ss"//"EE" to get short style
let mydt = dateFormatter.string(from: date).capitalized
return "/(mydt)"
}
Simplemente llámalo donde quieras así:
print("Date = /(self.dateFormatting())")
esta es la salida:
Date = Monday 15 October 2018 - 17:26:29
si quieres solo el tiempo simplemente cambia:
dateFormatter.dateFormat = "HH:mm:ss"
y esta es la salida:
Date = 17:27:30
y eso es...
Swift 4
let calendar = Calendar.current
let time=calendar.dateComponents([.hour,.minute,.second], from: Date())
print("/(time.hour!):/(time.minute!):/(time.second!)")
Swift 4.2 y 5
// *** Create date ***
let date = Date()
// *** create calendar object ***
var calendar = Calendar.current
// *** Get components using current Local & Timezone ***
print(calendar.dateComponents([.year, .month, .day, .hour, .minute], from: date))
// *** define calendar components to use as well Timezone to UTC ***
calendar.timeZone = TimeZone(identifier: "UTC")!
// *** Get All components from date ***
let components = calendar.dateComponents([.hour, .year, .minute], from: date)
print("All Components : /(components)")
// *** Get Individual components from date ***
let hour = calendar.component(.hour, from: date)
let minutes = calendar.component(.minute, from: date)
let seconds = calendar.component(.second, from: date)
print("/(hour):/(minutes):/(seconds)")
Swift 3.0
// *** Create date ***
let date = Date()
// *** create calendar object ***
var calendar = NSCalendar.current
// *** Get components using current Local & Timezone ***
print(calendar.dateComponents([.year, .month, .day, .hour, .minute], from: date as Date))
// *** define calendar components to use as well Timezone to UTC ***
let unitFlags = Set<Calendar.Component>([.hour, .year, .minute])
calendar.timeZone = TimeZone(identifier: "UTC")!
// *** Get All components from date ***
let components = calendar.dateComponents(unitFlags, from: date)
print("All Components : /(components)")
// *** Get Individual components from date ***
let hour = calendar.component(.hour, from: date)
let minutes = calendar.component(.minute, from: date)
let seconds = calendar.component(.second, from: date)
print("/(hour):/(minutes):/(seconds)")
let date = Date()
let units: Set<Calendar.Component> = [.hour, .day, .month, .year]
let comps = Calendar.current.dateComponents(units, from: date)
let hours = time / 3600
let minutes = (time / 60) % 60
let seconds = time % 60
return String(format: "%0.2d:%0.2d:%0.2d", hours, minutes, seconds)
swift 4
==> Getting iOS device current time:-
print(" ---> ",(Calendar.current.component(.hour, from: Date())),":",
(Calendar.current.component(.minute, from: Date())),":",
(Calendar.current.component(.second, from: Date())))
output: ---> 10 : 11: 34