Evitei desenvolver produtos Apple porque odeio Objective-C. Conseqüentemente, eu não aprendi. E eu sei que a sintaxe do Swift é pelo menos um pouco diferente. Apenas me mostre a sintaxe. Arranja alguma reputação de SO fácil.
Se não quiser usar o Foundation, você pode usar AFNetworking / AlamoFire ( github.com/Alamofire/Alamofire ) para carregar currentmillis.com e, em seguida, analisar o html da página. Observe que você deve considerar os atrasos de rede e verificar a conectividade. Decidi usar apenas o Foundation ...
1 second =-1 millisecond =1,000 seconds1 microsecond =1,000,000 seconds
O Swift timeIntervalSince1970retorna segundos com o que está documentado como precisão de "submilissegundos", que eu observei significar geralmente microssegundos, mas às vezes uma escala (um dígito à direita do decimal) a menos ou mais. Quando retorna uma escala de 5 (5 dígitos após o decimal), não sei se o Swift está descartando o 0 final ou não conseguiu produzir 6 escalas de precisão. Mas quando retorna uma escala de 7, aquele dígito extra pode ser truncado porque está além da precisão de microssegundos. Portanto, para valores consistentes e verdadeiros de precisão:
let preciseSeconds =Int(Date().timeIntervalSince1970)let preciseMilliseconds =Int(Date().timeIntervalSince1970*1_000)let preciseMicroseconds =Int(Date().timeIntervalSince1970*1_000_000)// most likely precise
Infelizmente, no entanto, no ano de 2038, os números de 32 bits não serão utilizáveis para o carimbo de data / hora Unix e terão que ser de 64 bits.
let seconds =Date().timeIntervalSince1970let milliseconds =Date().timeIntervalSince1970*1_000let microseconds =Date().timeIntervalSince1970*1_000_000
- timeIntervalSince1970
.Respostas:
Você pode simplesmente usar a
timeIntervalSince1970
função NSDate .fonte
Para Swift 3.0
fonte
Você pode conseguir isso usando o seguinte
Isto é para a data atual, se você quiser obter para uma determinada data
Se você deseja converter de volta da época do tempo UNIX para a hora Swift Date, você pode usar o seguinte
fonte
O Swift
timeIntervalSince1970
retorna segundos com o que está documentado como precisão de "submilissegundos", que eu observei significar geralmente microssegundos, mas às vezes uma escala (um dígito à direita do decimal) a menos ou mais. Quando retorna uma escala de 5 (5 dígitos após o decimal), não sei se o Swift está descartando o 0 final ou não conseguiu produzir 6 escalas de precisão. Mas quando retorna uma escala de 7, aquele dígito extra pode ser truncado porque está além da precisão de microssegundos. Portanto, para valores consistentes e verdadeiros de precisão:Infelizmente, no entanto, no ano de 2038, os números de 32 bits não serão utilizáveis para o carimbo de data / hora Unix e terão que ser de 64 bits.
Uma extensão:
fonte
Se você não quiser importar o Foundation, ou seja, para uso em Linux etc., você pode usar o seguinte do CoreFoundation:
fonte