Acabo de empezar con el patio de recreo. Estoy tratando de crear una aplicación simple.
He creado un objeto de fecha como este:
var date = NSDate()
¿Cómo puedo obtener la hora actual? En otros idiomas puedo hacer algo como esto:
var hour = date.hour
Pero no puedo encontrar ninguna propiedad / método como ese. He encontrado un método, dateWithCalendarFormat
. ¿Debo usar eso? ¿Si es así, cómo?
let components = calendar.components(.NSCalendarUnit.Year.union(NSCalendarUnit.Minute), fromDate: date)
, la barra vertical ya no se puede usar aquí.let components = calendar.components(NSCalendarUnit.Year.union(NSCalendarUnit.Minute), fromDate: date)
eliminado el extra '.' antes de NSCalendarUnitlet components = calendar.components([ .Hour, .Minute, .Second], fromDate: date)
Probado con Swift 4
Obtener la fecha y hora actuales
Puede obtener la fecha y hora actuales de la siguiente manera:
Sin embargo,
Date
es un número de coma flotante de 64 bits que mide la cantidad de segundos desde la fecha de referencia del 1 de enero de 2001 a las 00:00:00 UTC . Puedo ver ese número para la fecha y hora actual usandoAl momento de escribir esto, regresó
497626515.185066
, probablemente no exactamente lo que estaba buscando. Sigue leyendo.Crear otra fecha y hora
Método 1
Si conoce el número de segundos antes o después de la fecha de referencia, puede usar eso.
Método 2
Por supuesto, sería más fácil usar cosas como años, meses, días y horas (en lugar de segundos relativos) para hacer un
Date
. Para esto, puede usarDateComponents
para especificar los componentes y luegoCalendar
crear la fecha. ElCalendar
da elDate
contexto. De lo contrario, ¿cómo sabría en qué zona horaria o calendario expresarlo?Aquí se pueden encontrar otras abreviaturas de zona horaria . Si lo deja en blanco, el valor predeterminado es utilizar la zona horaria del usuario.
Método 3
La forma más sucinta (pero no necesariamente la mejor) podría ser usar
DateFormatter
.Los estándares técnicos Unicode muestran otros formatos que
DateFormatter
soporta.Mostrar la fecha y la hora
Método 1
Si solo desea mostrar ciertos componentes de la fecha o la hora, puede usar
CalendarUnit
para especificar los componentes de los que desea extraerDate
.Ver esta respuesta también.
Método 2
El Método 1 le proporcionó los componentes, pero sería mucho trabajo formatear esos números para cada estilo, idioma y región. Y no necesitas hacerlo. Esto ya se hizo con la
DateFormatter
clase.Aquí hay una continuación del código anterior que muestra más opciones de formato:
Sin embargo, tenga en cuenta que esto es para inglés con la región establecida en los EE. UU. Para otros idiomas y regiones, el formato se verá diferente.
Estudio adicional
fuente
También puede usar el método de conveniencia de NSDateFormatter, por ejemplo,
fuente
Swift hace que sea realmente fácil crear y usar extensiones. Creo un
sharedCode.swift
archivo y pongo enumeraciones, extensiones y otras cosas divertidas en él. Creé unaNSDate
extensión para agregar alguna funcionalidad típica que es laboriosa y fea de escribir una y otra vez:usando esta extensión ahora puede hacer algo como:
Que para las 11:51 AM escribiría:
fuente
Respuesta rápida 2:
fuente
Swift 4
SALIDA
2018-mayo-01 10:41:31
fuente
Swift 3:
PD: no estoy seguro de lo que significa la pregunta exactamente al obtener la hora actual (y la hora) como hora de fecha, pero espero que lo anterior explique lo suficiente como para responder la pregunta.
fuente
Con Swift 5,
Foundation
ofrece muchas formas de obtener el valor horario de unDate
objeto. Según sus necesidades, puede elegir uno de los siguientes cuatro fragmentos de código de Playground .# 1 Utilizando
Calendar
dateComponents(_:from:)
métodoCalendar
tiene un método llamadodateComponents(_:from:)
.dateComponents(_:from:)
tiene la siguiente declaración:Uso:
# 2 Utilizando
Calendar
component(_:from:)
métodoCalendar
tiene un método llamadocomponent(_:from:)
.component(_:from:)
tiene la siguiente declaración:Uso:
# 3 Utilizando
DateFormatter
dateFormat
propiedadDateFormatter
tiene una propiedad llamadadateFormat
.dateFormat
tiene la siguiente declaración:Uso:
# 4. Utilizando
Dateformatter
setLocalizedDateFormatFromTemplate(_:)
métodoDateformatter
tiene un método llamadosetLocalizedDateFormatFromTemplate(_:)
.setLocalizedDateFormatFromTemplate(_:)
tiene la siguiente declaración:Uso:
fuente
si solo necesitas la hora del día
fuente
En Swift 3,
fuente
let calendar = Calendar.current; let unitFlags: Set<Calendar.Component> = Set<Calendar.Component ([.hour]); let components = calendar.dateComponents(unitFlags, from: self)
Uso del formateador de fecha -Swift 3.0
Fecha y hora de actualización cada segundos
Nota: DateAndTime en el código del temporizador es el nombre de la clase.
fuente
Sé que hay muchas respuestas, pero creo que la mía puede ser más conveniente para muchos
fuente
Puedes probar esto
Ahora llame a ese método y reciba la fecha con hora, min y segundo
fuente
Puede usar en 4 o 5 rápidos como abajo
Ouput será como abajo
fuente
Xcode 8.2.1 • Swift 3.0.2
fuente
Date().hour
Ampliando la solución épicamente concisa de noiiv , aquí está la implementación Swift 3/4 aún más concisa:
Swift 3/4
Además, ampliando la extensión de Leo Dabus podemos tener:
Y úsalo así:
fuente
Date
objeto. Por cierto, el método del componente Calendario es más apropiado para un solo componenteDateComponents.year
Int?
component
método para esossolo para fecha en formato específico
fuente
Swift 5
y la función de llamada printTimestamp ()
fuente
Puede crear una extensión
Date
, de esa manera puede llamarla fácilmente en otros archivos. Aquí hay un ejemplo de una extensión de fecha que usa una propiedad calculada.Lo imprimirá: "Hoy, 4:55 PM"
fuente
Puede usar Swift4 o Swift 5 como:
salida como:
fuente
En caso de que necesite formatear la respuesta de una manera particular, puede usar fácilmente este método, el predeterminado = "dd-MM-aaaa".
Obtener la fecha de hoy ahora se puede hacer usando
fuente
SWIFT 4:
fuente
fuente
Aquí está la extensión SWIFT para obtener la hora actual de ubicación del dispositivo (GMT).
Obtenga ahora el tiempo: -
fuente
Funciona con Swift 5 (Xcode 10 y Xcode 11) (de France UTC)
Si desea mostrar solo la fecha, configure
formatter.dateFormat
Para mostrar solo las horas, cambie
formatter.dateFormat
aNo se olvide de añadir
getCurrentDateTime()
enviewDidLoad
.fuente
Puede obtener de Dateformatter
fuente