He evitado desarrollar productos Apple porque odio Objective-C. En consecuencia, no lo he aprendido. Y sé que la sintaxis de Swift es al menos ligeramente diferente. Enséñame la sintaxis. Consiga una reputación de SO fácil.
Tenga en cuenta que esto debe tener Foundation importado.
AlBlue
3
¿Qué tal sin usar Foundation?
marius
3
Si no desea usar la base, puede usar AFNetworking / AlamoFire ( github.com/Alamofire/Alamofire ) para cargar currentmillis.com y luego analizar el html de la página. Tenga en cuenta que debe tener en cuenta los retrasos en la red y verificar la conectividad. Decidí usar Foundation ...
1 second =-1 millisecond =1,000 seconds1 microsecond =1,000,000 seconds
Swift timeIntervalSince1970devuelve segundos con lo que se documenta como una precisión de "submilisegundos", que he observado que significa generalmente microsegundos, pero a veces una escala (un dígito a la derecha del decimal) menos o más. Cuando devuelve una escala de 5 (5 dígitos después del decimal), no sé si Swift está eliminando el 0 final o no puede producir 6 escalas de precisión. Pero cuando devuelve una escala de 7, ese dígito adicional se puede truncar porque está más allá de la precisión de microsegundos. Por lo tanto, para valores consistentes y verdaderos con precisión:
let preciseSeconds =Int(Date().timeIntervalSince1970)let preciseMilliseconds =Int(Date().timeIntervalSince1970*1_000)let preciseMicroseconds =Int(Date().timeIntervalSince1970*1_000_000)// most likely precise
Desafortunadamente, sin embargo, en el año 2038, los números de 32 bits no se podrán utilizar para la marca de tiempo de Unix y tendrán que ser de 64 bits.
let seconds =Date().timeIntervalSince1970let milliseconds =Date().timeIntervalSince1970*1_000let microseconds =Date().timeIntervalSince1970*1_000_000
¿Sabes cuándo las cosas podrían convertirse en multiplataforma Date and friends?
Zoltán Matók
@ ZoltánMatók He escuchado que tienen planes para reimplementar más de la Fundación al aire libre. Eche un vistazo a forums.swift.org para obtener más información.
- timeIntervalSince1970
.Respuestas:
Simplemente puede usar la
timeIntervalSince1970
función de NSDate .fuente
Para Swift 3.0
fuente
Puedes conseguirlo usando lo siguiente
Esto es para la fecha actual, si desea obtener para una fecha determinada
Si desea volver a convertir de la época de UNIX a la hora de Swift Date, puede usar lo siguiente
fuente
Swift
timeIntervalSince1970
devuelve segundos con lo que se documenta como una precisión de "submilisegundos", que he observado que significa generalmente microsegundos, pero a veces una escala (un dígito a la derecha del decimal) menos o más. Cuando devuelve una escala de 5 (5 dígitos después del decimal), no sé si Swift está eliminando el 0 final o no puede producir 6 escalas de precisión. Pero cuando devuelve una escala de 7, ese dígito adicional se puede truncar porque está más allá de la precisión de microsegundos. Por lo tanto, para valores consistentes y verdaderos con precisión:Desafortunadamente, sin embargo, en el año 2038, los números de 32 bits no se podrán utilizar para la marca de tiempo de Unix y tendrán que ser de 64 bits.
Una extensión:
fuente
Si no desea importar Foundation, es decir, para uso de Linux, etc., puede utilizar lo siguiente de CoreFoundation:
fuente