Unikałem tworzenia produktów Apple, ponieważ nienawidzę Objective-C. W związku z tym się tego nie nauczyłem. I wiem, że składnia Swift jest przynajmniej trochę inna. Pokaż mi tylko składnię. Zdobądź dobrą reputację SO.
Należy pamiętać, że należy zaimportować Foundation.
AlBlue
3
co powiesz na bez używania Foundation?
marius
3
Jeśli nie chcesz używać fundacji, możesz użyć AFNetworking / AlamoFire ( github.com/Alamofire/Alamofire ), aby załadować currentmillis.com, a następnie przeanalizować kod HTML strony. Pamiętaj, że musisz liczyć się z opóźnieniami w sieci i sprawdzić łączność. Postanowiłem po prostu użyć Foundation ...
1 second =-1 millisecond =1,000 seconds
1 microsecond =1,000,000 seconds
Swift timeIntervalSince1970zwraca sekundy z dokładnością udokumentowaną jako „poniżej milisekundy”, co, jak zauważyłem, oznacza zwykle mikrosekundy, ale czasami o jedną skalę (jedną cyfrę na prawo od przecinka) mniej lub więcej. Kiedy zwraca skalę 5 (5 cyfr po przecinku), nie wiem, czy Swift upuszcza końcowe 0, czy nie może wytworzyć 6 skal dokładności. Ale kiedy zwraca skalę 7, ta dodatkowa cyfra może zostać obcięta, ponieważ jest poza dokładnością do mikrosekundy. Dlatego dla spójnych i precyzyjnych wartości:
let preciseSeconds =Int(Date().timeIntervalSince1970)let preciseMilliseconds =Int(Date().timeIntervalSince1970*1_000)let preciseMicroseconds =Int(Date().timeIntervalSince1970*1_000_000)// most likely precise
Niestety, w roku 2038 32-bitowe liczby nie będą nadawać się do użycia jako znacznik czasu Uniksa i będą musiały być 64-bitowe.
let seconds =Date().timeIntervalSince1970let milliseconds =Date().timeIntervalSince1970*1_000let microseconds =Date().timeIntervalSince1970*1_000_000
Czy wiesz, kiedy może się zdarzyć, że randki i przyjaciele staną się międzyplatformowe?
Zoltán Matók
@ ZoltánMatók Słyszałem, że mają plany ponownego wdrożenia większej liczby Fundacji na otwartej przestrzeni. Zajrzyj na forums.swift.org, aby uzyskać więcej informacji.
- timeIntervalSince1970
.Odpowiedzi:
Możesz po prostu użyć
timeIntervalSince1970
funkcji NSDate .źródło
Dla Swift 3.0
źródło
Możesz to uzyskać za pomocą następujących
To jest na aktualny termin, jeśli chcesz dostać się na dany termin
Jeśli chcesz przekonwertować z powrotem z epoki czasu UNIX na czas Swift Date, możesz użyć następującego
źródło
Swift
timeIntervalSince1970
zwraca sekundy z dokładnością udokumentowaną jako „poniżej milisekundy”, co, jak zauważyłem, oznacza zwykle mikrosekundy, ale czasami o jedną skalę (jedną cyfrę na prawo od przecinka) mniej lub więcej. Kiedy zwraca skalę 5 (5 cyfr po przecinku), nie wiem, czy Swift upuszcza końcowe 0, czy nie może wytworzyć 6 skal dokładności. Ale kiedy zwraca skalę 7, ta dodatkowa cyfra może zostać obcięta, ponieważ jest poza dokładnością do mikrosekundy. Dlatego dla spójnych i precyzyjnych wartości:Niestety, w roku 2038 32-bitowe liczby nie będą nadawać się do użycia jako znacznik czasu Uniksa i będą musiały być 64-bitowe.
Rozszerzenie:
źródło
Jeśli nie chcesz importować Foundation, tj. Do użytku z Linuksem itp., Możesz użyć następujących z CoreFoundation:
źródło