รับวันที่ปัจจุบันใน Swift 3 หรือไม่ [ปิด]


115

ฉันจะตั้งวันที่ปัจจุบัน label.text ใน Swift 3 ได้อย่างไร

ฉันต้องการพิมพ์แค่วันนี้ไปที่หน้าจอ ฉันไม่พบวิธีการทำเช่นนั้น

ใน c # นั้นง่ายมาก:

var date = DateTime.Now

ฉันต้องเขียน 15.09.2016 ใน swift 3 ขอบคุณ


2
เป็นไปได้ที่จะซ้ำกันของstackoverflow.com/questions/24070450/…
koen

ที่ไม่ทำงานอีกต่อไป?
yucel

1
คุณเลื่อนไปด้านล่างสุดเพื่อหาคำตอบของ Swift 3 หรือไม่?
koen

ฉันพยายามแล้วแต่ทำไม่ได้
yucel

1
คุณอาจต้องการใช้แล้วNSDateFormatter stringFromDate
koen

คำตอบ:


289

คุณพูดในความคิดเห็นที่ต้องการรับ "15.09.2016"

สำหรับสิ่งนี้ให้ใช้DateและDateFormatter:

let date = Date()
let formatter = DateFormatter()

กำหนดรูปแบบที่คุณต้องการให้กับฟอร์แมตเตอร์:

formatter.dateFormat = "dd.MM.yyyy"

รับสตริงผลลัพธ์:

let result = formatter.string(from: date)

ตั้งค่าป้ายกำกับของคุณ:

label.text = result

ผลลัพธ์:

15.09.2016


2
ใน Swift 4.2 DateFormatter มีทั้งคุณสมบัติ. dateStyle และ .timeStyle แทนที่จะใช้ไวยากรณ์ที่ค่อนข้างทึบด้านบน (ซึ่งให้การควบคุมแบบละเอียดมากขึ้น - ดูที่nsdateformatter.com ) คุณสามารถใช้ dateStyle ร่วมกับโลแคลได้
green_knight

63

คุณสามารถทำได้ด้วยวิธีนี้ด้วย Swift 3.0:

let date = Date()
let calendar = Calendar.current
let components = calendar.dateComponents([.year, .month, .day], from: date)

let year =  components.year
let month = components.month
let day = components.day

print(year)
print(month)
print(day)

22
ฉันไม่อยากจะเชื่อเลยว่าหลังจาก Swift 3 การจัดการวันที่นั้นแย่มาก! เป็นเรื่องที่น่าอับอายเมื่อพิจารณา Date ใน. NET อยู่ในเวอร์ชัน 1 ในปี 2545 จากหน่วยความจำ DateTime.Now หรือ DateTime.Now เดือนง่ายกว่ามาก!
csmith

1
คุณจะรู้ได้อย่างไรว่าวันนั้นเป็นวันจันทร์อังคารหรือพุธ?
Joseph Astrahan

1
ลองใช้ SwiftDate Cocoapod หากคุณต้องการวิธีที่ง่ายกว่ามากในการโต้ตอบกับวันที่อย่างรวดเร็ว
Rob Norback

1
@csmith นั่นเป็นเพราะมันยังคงเป็น NSDate แบบเก่า แต่มีไวยากรณ์ของ Swift ยังไม่ได้เขียนใหม่ คุณพูดถูกมันเป็นเรื่องยากที่จะทำงานกับ
bandejapaisa
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.