J'ai évité de développer des produits Apple parce que je déteste Objective-C. Par conséquent, je ne l'ai pas appris. Et je sais que la syntaxe Swift est au moins légèrement différente. Montre-moi juste la syntaxe. Obtenez-vous une réputation SO facile.
Si vous ne souhaitez pas utiliser Foundation, vous pouvez utiliser AFNetworking / AlamoFire ( github.com/Alamofire/Alamofire ) pour charger currentmillis.com , puis analyser le code HTML de la page. Notez que vous devez tenir compte des retards de mise en réseau et vérifier la connectivité. J'ai décidé de simplement utiliser Foundation ...
1 second =-1 millisecond =1,000 seconds1 microsecond =1,000,000 seconds
Swift's timeIntervalSince1970renvoie les secondes avec ce qui est documenté comme une précision "inférieure à la milliseconde", ce que j'ai observé pour signifier généralement des microsecondes mais parfois une échelle (un chiffre à droite de la décimale) de moins ou plus. Quand il renvoie une échelle de 5 (5 chiffres après la décimale), je ne sais pas si Swift laisse tomber le 0 final ou s'il ne peut pas produire 6 échelles de précision. Mais lorsqu'il renvoie une échelle de 7, ce chiffre supplémentaire peut être tronqué car il dépasse la précision de la microseconde. Par conséquent, pour des valeurs cohérentes et précises:
let preciseSeconds =Int(Date().timeIntervalSince1970)let preciseMilliseconds =Int(Date().timeIntervalSince1970*1_000)let preciseMicroseconds =Int(Date().timeIntervalSince1970*1_000_000)// most likely precise
Malheureusement, cependant, en 2038, les nombres 32 bits ne seront pas utilisables pour l'horodatage Unix et ils devront être 64 bits.
let seconds =Date().timeIntervalSince1970let milliseconds =Date().timeIntervalSince1970*1_000let microseconds =Date().timeIntervalSince1970*1_000_000
Si vous ne souhaitez pas importer Foundation, c'est-à-dire pour une utilisation Linux, etc., vous pouvez utiliser ce qui suit à partir de CoreFoundation:
Savez-vous quand les choses pourraient devenir multiplateformes?
Zoltán Matók
@ ZoltánMatók J'ai entendu dire qu'ils prévoyaient de réimplémenter davantage la Fondation en plein air. Jetez un œil à forums.swift.org pour plus d'informations.
- timeIntervalSince1970
.Réponses:
Vous pouvez simplement utiliser la
timeIntervalSince1970
fonction de NSDate .la source
Pour Swift 3.0
la source
Vous pouvez l'obtenir en utilisant ce qui suit
Ceci est pour la date actuelle, si vous souhaitez obtenir pour une date donnée
Si vous souhaitez reconvertir de l'époque UNIX en heure Swift Date, vous pouvez utiliser
la source
Swift's
timeIntervalSince1970
renvoie les secondes avec ce qui est documenté comme une précision "inférieure à la milliseconde", ce que j'ai observé pour signifier généralement des microsecondes mais parfois une échelle (un chiffre à droite de la décimale) de moins ou plus. Quand il renvoie une échelle de 5 (5 chiffres après la décimale), je ne sais pas si Swift laisse tomber le 0 final ou s'il ne peut pas produire 6 échelles de précision. Mais lorsqu'il renvoie une échelle de 7, ce chiffre supplémentaire peut être tronqué car il dépasse la précision de la microseconde. Par conséquent, pour des valeurs cohérentes et précises:Malheureusement, cependant, en 2038, les nombres 32 bits ne seront pas utilisables pour l'horodatage Unix et ils devront être 64 bits.
Une extension:
la source
Si vous ne souhaitez pas importer Foundation, c'est-à-dire pour une utilisation Linux, etc., vous pouvez utiliser ce qui suit à partir de CoreFoundation:
la source