Bagaimana saya bisa mengubah string ini "2016-04-14T10:44:00+0000"
menjadi NSDate
dan hanya menyimpan tahun, bulan, hari, jam?
Di T
tengah-tengahnya benar-benar membuang apa yang saya terbiasa ketika bekerja dengan teman kencan.
swift
nsdate
nsdateformatter
asheyla
sumber
sumber
Jawaban:
Konversi string ISO8601 ke tanggal
Dapatkan komponen tanggal untuk tahun, bulan, hari dan jam dari tanggal
Terakhir, buat
Date
objek baru dan hapus menit dan detikPertimbangkan juga formatter kenyamanan yang
ISO8601DateFormatter
diperkenalkan di iOS 10 / macOS 12:sumber
.hour
Coba Format tanggal berikut.
Semoga ini bisa membantu ..
Swift 4.1:
sumber
Di Swift 4.1 Anda dapat melakukan:
sumber
Swift 3.0 - 4.2
sumber
Hai Anda memiliki T Format yang terpisah dan kemudian mengonversi sesuka Anda
sumber
Hanya melewati Anda
dateformate
dan teman kencan Anda maka Anda dapatkanYear,month,day,hour
. Informasi tambahanDapatkan Tahun
Dapatkan Bulan
Dapatkan Hari
Dapatkan Jam
sumber
membuat fungsi global
Memanggil fungsi dan memberikan nilai di dalamnya
dan di sini adalah output
sumber
Di swift4,
// output: - 30 Mar 2019 05:30 PM
sumber
cukup Langkah 1> dapatkan nilai String dari JSON atau dataSource
Langkah 2> buat variabel lokal dan tetapkan.
Langkah 3> buat instance DateFormatter.
langkah 4> panggil dateFormat dari dateFormatter dan berikan tipe data tanggal yang disimpan.
langkah 5> Tetapkan variabel Lokal ke variabel ini untuk dikonversi.
Langkah 6> berikan Tanggal yang Anda inginkan, Formate dengan kode berikut.
Langkah 6> Tetapkan ke label / teks
Kode:
sumber
Swift 5. Untuk melihat JIKA TANGGAL TELAH BERLALU:
sumber
Saya jadi gila dengan format ini juga.
Lihat solusinya di bawah ini.
String Anda yang datang dari belakang atau sumber lain:
Identifikasi format tanggal
Sekarang Anda memiliki tanggal sebagai Tanggal (), Anda dapat mengubah ke format apa pun yang Anda inginkan menggunakan formatDate.string
Keluaran:
sumber
Silakan gunakan perpustakaan parsing ISO8601 untuk melakukan ini. Ada terlalu banyak cara bagaimana string dapat dikodekan. Jangan mengandalkan format tertentu dan jangan bergantung pada pengiriman server yang selalu sama. Masalahnya dimulai dengan 'Z' di bagian akhir dan itu akan meluas melalui semua varietas standar. Parsing perpustakaan akan menangani semua kasus dan akan selalu memberikan konversi yang aman - sedangkan string pemformatan tetap cenderung gagal di masa mendatang.
Anda bisa menggunakan salah satu perpustakaan ini. Mereka juga tersedia di CococaPods:
https://github.com/boredzo/iso-8601-date-formatter/
https://github.com/malcommac/SwiftDate
Lihatlah implementasinya. Keduanya panjang beberapa ratus baris - untuk alasan yang baik.
Berkenaan dengan pertanyaan: Anda dapat menarik komponen tanggal dari tanggal menggunakan NSDateComponents. Contoh di situs web mencakup persis kasus Anda.
https://developer.apple.com/documentation/foundation/nscalendar/1414841-components?language=objc
Perlu diketahui, bahwa mengonversi tanggal Anda akan mempertimbangkan zona waktu. Anda mungkin ingin mengatur 'lokal' dari NSCalendar secara eksplisit.
sumber
Cukup gunakan SwifterSwift.
sumber