Saya menghindari pengembangan produk Apple karena saya benci Objective-C. Akibatnya, saya belum mempelajarinya. Dan saya tahu bahwa sintaks Swift setidaknya sedikit berbeda. Tunjukkan saja sintaksnya. Dapatkan reputasi SO yang mudah untuk diri Anda sendiri.
Perhatikan ini harus memiliki Foundation yang diimpor.
AlBlue
3
bagaimana kalau tanpa menggunakan Foundation?
marius
3
Jika Anda tidak ingin menggunakan foundation, Anda dapat menggunakan AFNetworking / AlamoFire ( github.com/Alamofire/Alamofire ) untuk memuat currentmillis.com dan kemudian mengurai html halaman. Perhatikan bahwa Anda harus memperhitungkan penundaan jaringan dan memeriksa konektivitas. Saya memutuskan untuk hanya menggunakan Foundation ...
1 second =-1 millisecond =1,000 seconds
1 microsecond =1,000,000 seconds
Swift timeIntervalSince1970mengembalikan detik dengan apa yang didokumentasikan sebagai presisi "sub-milidetik", yang saya amati biasanya berarti mikrodetik tetapi terkadang satu skala (satu digit di sebelah kanan desimal) kurang atau lebih. Ketika mengembalikan skala 5 (5 digit setelah desimal), saya tidak tahu apakah Swift menjatuhkan 0 di belakang atau tidak dapat menghasilkan 6 skala presisi. Tetapi ketika ia mengembalikan skala 7, digit tambahan itu dapat dipotong karena di luar presisi mikrodetik. Oleh karena itu, untuk nilai yang konsisten dan presisi-benar:
let preciseSeconds =Int(Date().timeIntervalSince1970)let preciseMilliseconds =Int(Date().timeIntervalSince1970*1_000)let preciseMicroseconds =Int(Date().timeIntervalSince1970*1_000_000)// most likely precise
Sayangnya, bagaimanapun, di tahun 2038, nomor 32-bit tidak dapat digunakan untuk stempel waktu Unix dan harus 64-bit.
let seconds =Date().timeIntervalSince1970let milliseconds =Date().timeIntervalSince1970*1_000let microseconds =Date().timeIntervalSince1970*1_000_000
Apakah Anda tahu kapan hal-hal yang mungkin kencan dan teman-teman akan menjadi lintas platform?
Zoltán Matók
@ ZoltánMatók Saya mendengar mereka memiliki rencana untuk mengimplementasikan kembali Foundation lebih banyak di tempat terbuka. Kunjungi forums.swift.org untuk info lebih lanjut.
- timeIntervalSince1970
.Jawaban:
Anda cukup menggunakan
timeIntervalSince1970
fungsi NSDate .sumber
Untuk Swift 3.0
sumber
Anda bisa mendapatkannya dengan mengikuti
Ini untuk tanggal sekarang, jika Anda ingin mendapatkan untuk tanggal tertentu
Jika Anda ingin mengkonversi kembali dari waktu UNIX ke waktu Tanggal Swift, Anda dapat menggunakan berikut
sumber
Swift
timeIntervalSince1970
mengembalikan detik dengan apa yang didokumentasikan sebagai presisi "sub-milidetik", yang saya amati biasanya berarti mikrodetik tetapi terkadang satu skala (satu digit di sebelah kanan desimal) kurang atau lebih. Ketika mengembalikan skala 5 (5 digit setelah desimal), saya tidak tahu apakah Swift menjatuhkan 0 di belakang atau tidak dapat menghasilkan 6 skala presisi. Tetapi ketika ia mengembalikan skala 7, digit tambahan itu dapat dipotong karena di luar presisi mikrodetik. Oleh karena itu, untuk nilai yang konsisten dan presisi-benar:Sayangnya, bagaimanapun, di tahun 2038, nomor 32-bit tidak dapat digunakan untuk stempel waktu Unix dan harus 64-bit.
Sebuah ekstensi:
sumber
Jika Anda tidak ingin mengimpor Foundation, yaitu untuk penggunaan Linux dll, Anda dapat menggunakan berikut ini dari CoreFoundation:
sumber