Baru mulai dengan taman bermain. Saya mencoba membuat aplikasi sederhana.
Saya telah membuat objek tanggal seperti ini:
var date = NSDate()
Bagaimana saya bisa mendapatkan jam saat ini? Dalam bahasa lain saya dapat melakukan sesuatu seperti ini:
var hour = date.hour
Tetapi saya tidak dapat menemukan properti / metode seperti itu. Saya telah menemukan metode dateWithCalendarFormat
,. Haruskah saya menggunakan itu? Jika demikian, BAGAIMANA?
let components = calendar.components(.NSCalendarUnit.Year.union(NSCalendarUnit.Minute), fromDate: date)
, garis miring vertikal tidak dapat digunakan di sini lagi.let components = calendar.components(NSCalendarUnit.Year.union(NSCalendarUnit.Minute), fromDate: date)
menghapus ekstra '.' sebelum NSCalendarUnitlet components = calendar.components([ .Hour, .Minute, .Second], fromDate: date)
Diuji dengan Swift 4
Mendapatkan Tanggal dan Waktu Saat Ini
Anda bisa mendapatkan tanggal dan waktu saat ini sesederhana ini:
Namun,
Date
adalah angka floating point 64-bit yang mengukur jumlah detik sejak tanggal referensi 1 Januari 2001 pukul 00:00:00 UTC . Saya bisa melihat nomor itu untuk datetime saat ini dengan menggunakanPada saat penulisan ini, ia kembali
497626515.185066
, mungkin tidak persis apa yang Anda cari. Teruslah membaca.Membuat Tanggal dan Waktu Lain
Metode 1
Jika Anda tahu jumlah detik sebelum atau setelah tanggal referensi, Anda dapat menggunakannya.
Metode 2
Tentu saja, akan lebih mudah untuk menggunakan hal-hal seperti tahun, bulan, hari dan jam (daripada detik relatif) untuk membuat
Date
. Untuk ini, Anda dapat menggunakanDateComponents
untuk menentukan komponen dan kemudianCalendar
untuk membuat tanggal. TheCalendar
memberikanDate
konteks. Kalau tidak, bagaimana ia bisa tahu zona waktu atau kalender mana untuk mengekspresikannya?Singkatan zona waktu lainnya dapat ditemukan di sini . Jika Anda membiarkannya kosong, maka defaultnya adalah menggunakan zona waktu pengguna.
Metode 3
Cara yang paling ringkas (tapi belum tentu yang terbaik) bisa digunakan
DateFormatter
.Standar teknis Unicode menunjukkan format lain yang
DateFormatter
mendukung.Menampilkan Tanggal dan Waktu
Metode 1
Jika Anda hanya ingin menampilkan komponen tertentu dari tanggal atau waktu yang dapat Anda gunakan
CalendarUnit
untuk menentukan komponen yang ingin Anda ekstrakDate
.Lihat jawaban ini juga.
Metode 2
Metode 1 memberi Anda komponen, tetapi akan banyak pekerjaan untuk memformat angka-angka itu untuk setiap gaya, bahasa, dan wilayah. Dan Anda tidak perlu melakukannya. Ini sudah dilakukan untuk Anda bersama
DateFormatter
kelas.Ini adalah kelanjutan dari kode di atas yang menunjukkan lebih banyak opsi pemformatan:
Perlu diingat, bahwa ini untuk bahasa Inggris dengan wilayah yang ditetapkan ke AS. Untuk bahasa dan wilayah lain pemformatan akan terlihat berbeda.
Pelajaran lanjutan
sumber
Anda juga bisa menggunakan metode kenyamanan NSDateFormatter, misalnya,
sumber
Swift membuatnya sangat mudah untuk membuat dan menggunakan ekstensi. Saya membuat
sharedCode.swift
file dan memasukkan enums, ekstensi, dan hal-hal menyenangkan lainnya ke dalamnya. Saya membuatNSDate
ekstensi untuk menambahkan beberapa fungsi khas yang melelahkan dan jelek untuk mengetik berulang-ulang:menggunakan ekstensi ini sekarang Anda dapat melakukan sesuatu seperti:
Yang untuk 11:51 akan menulis:
sumber
Swift 2 menjawab:
sumber
Cepat 4
KELUARAN
2018-Mei-01 10:41:31
sumber
Swift 3:
PS - tidak yakin apa artinya pertanyaan dengan tepat dengan mendapatkan waktu saat ini (dan jam) sebagai waktu kencan, tetapi mudah-mudahan di atas harus menjelaskan cukup untuk menjawab pertanyaan.
sumber
Dengan Swift 5,
Foundation
menawarkan banyak cara untuk mendapatkan nilai jam dari suatuDate
objek. Menurut kebutuhan Anda, Anda dapat memilih salah satu dari empat cuplikan kode Taman Bermain berikut .# 1. Menggunakan
Calendar
dateComponents(_:from:)
metodeCalendar
memiliki metode yang disebutdateComponents(_:from:)
.dateComponents(_:from:)
memiliki deklarasi berikut:Pemakaian:
# 2. Menggunakan
Calendar
component(_:from:)
metodeCalendar
memiliki metode yang disebutcomponent(_:from:)
.component(_:from:)
memiliki deklarasi berikut:Pemakaian:
# 3. Menggunakan
DateFormatter
dateFormat
propertiDateFormatter
memiliki properti yang disebutdateFormat
.dateFormat
memiliki deklarasi berikut:Pemakaian:
# 4 Menggunakan
Dateformatter
setLocalizedDateFormatFromTemplate(_:)
metodeDateformatter
memiliki metode yang disebutsetLocalizedDateFormatFromTemplate(_:)
.setLocalizedDateFormatFromTemplate(_:)
memiliki deklarasi berikut:Pemakaian:
sumber
jika Anda hanya membutuhkan waktu sehari
sumber
Dalam Swift 3,
sumber
let calendar = Calendar.current; let unitFlags: Set<Calendar.Component> = Set<Calendar.Component ([.hour]); let components = calendar.dateComponents(unitFlags, from: self)
Menggunakan Date Formatter -Swift 3.0
Perbarui Tanggal dan Waktu Setiap Detik
Catatan: DateAndTime dalam kode Timer adalah nama Kelas.
sumber
Saya tahu ada banyak jawaban tetapi saya pikir jawaban saya mungkin lebih nyaman bagi banyak orang
sumber
Anda bisa mencoba ini
Sekarang panggil metode itu dan terima tanggal dengan jam, menit, dan detik
sumber
Anda dapat menggunakan di swift 4 atau 5 seperti di bawah ini
Ouput akan seperti di bawah
sumber
Xcode 8.2.1 • Swift 3.0.2
sumber
Date().hour
Memperluas solusi singkat epiiv noiiv , berikut adalah implementasi Swift 3/4 yang lebih ringkas:
Cepat 3/4
Juga, memperluas pada ekstensi Leo Dabus kita dapat memiliki:
Dan gunakan seperti ini:
sumber
Date
objek. Metode komponen Kalender Btw lebih tepat untuk komponen tunggalDateComponents.year
accessor adalahInt?
component
metode bagi parahanya tanggal dalam format tertentu
sumber
Cepat 5
dan Fungsi panggilan printTimestamp ()
sumber
Anda dapat membuat ekstensi aktif
Date
, dengan cara itu Anda dapat dengan mudah menyebutnya di file lain. Berikut adalah contoh ekstensi tanggal yang menggunakan properti yang dihitung.Ini akan mencetaknya: "Hari ini, 16:55"
sumber
Anda dapat menggunakan Swift4 atau Swift 5 di bawah seperti:
output seperti:
sumber
Jika Anda perlu memformat jawaban dengan cara tertentu, Anda dapat dengan mudah menggunakan metode ini, default = "dd-MM-yyyy".
Mendapatkan kencan hari ini sekarang dapat dilakukan dengan menggunakan
sumber
SWIFT 4:
sumber
sumber
Ini adalah ekstensi SWIFT untuk mendapatkan waktu lokasi perangkat Anda saat ini (GMT).
Dapatkan waktu sekarang: -
sumber
Bekerja dengan Swift 5 (Xcode 10 & Xcode 11) (dari France UTC)
Jika Anda hanya ingin menampilkan tanggal, atur
formatter.dateFormat
Untuk hanya menampilkan jam, ubah
formatter.dateFormat
keJangan lupa untuk menambahkan
getCurrentDateTime()
padaviewDidLoad
.sumber
Anda bisa dapatkan dari Dateformatter
sumber