วิธีรับเวลาปัจจุบันเป็นวันที่และเวลา


263

เพิ่งเริ่มต้นด้วยสนามเด็กเล่น ฉันกำลังพยายามสร้างแอปง่าย ๆ

ฉันได้สร้างวัตถุวันที่เช่นนี้:

var date = NSDate()

ฉันจะรับชั่วโมงปัจจุบันได้อย่างไร ในภาษาอื่นฉันสามารถทำสิ่งนี้:

var hour = date.hour

แต่ฉันไม่พบคุณสมบัติ / วิธีการเช่นนั้น ฉันพบวิธีแล้ว, dateWithCalendarFormat. ฉันควรใช้สิ่งนี้หรือไม่? ถ้าเป็นเช่นนั้นได้อย่างไร

คำตอบ:


389

อัปเดตสำหรับ Swift 3:

let date = Date()
let calendar = Calendar.current
let hour = calendar.component(.hour, from: date)
let minutes = calendar.component(.minute, from: date)

ฉันทำนี่:

let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute, fromDate: date)
let hour = components.hour
let minutes = components.minute

ดูคำถามเดียวกันในวัตถุประสงค์ -c ฉันจะได้รับชั่วโมงและนาทีจาก NSDate ได้อย่างไร

เมื่อเทียบกับคำตอบของ Nate คุณจะได้รับตัวเลขด้วยสิ่งนี้ไม่ใช่สาย ... เลือกตัวเลือกของคุณ!


สวัสดีขอบคุณสำหรับคำตอบตัวอย่างเช่นถ้านาทีน้อยกว่าสองตัวละครฉันจะคืนมันอย่างไรด้วยตัวละครสองตัวเช่น "04"
Yestay Muratov

2
@YestayMuratov หน้าเว็บที่มีประโยชน์นี้บอกมีวิธีการที่เป็นไปได้ทั้งหมดของการจัดรูปแบบวันที่ใช้ใน NSDateFormatter รวดเร็ว :) codingexplorer.com/...
แม็กซ์

15
ดูเหมือนว่ารุ่น Swift ใหม่ (2) ที่คุณต้องใช้สิ่งที่คล้ายกับlet components = calendar.components(.NSCalendarUnit.Year.union(NSCalendarUnit.Minute), fromDate: date)เฉือนแนวตั้งไม่สามารถใช้ที่นี่อีกต่อไป
Hola Soy Edu Feliz Navidad

5
let components = calendar.components(NSCalendarUnit.Year.union(NSCalendarUnit.Minute), fromDate: date)นำส่วนเพิ่มเติม '.' ออก ก่อน NSCalendarUnit
cakes88

45
Swift 2.1: let components = calendar.components([ .Hour, .Minute, .Second], fromDate: date)
Obiwahn

184

ทดสอบกับ Swift 4

รับวันที่และเวลาปัจจุบัน

คุณสามารถรับวันที่และเวลาปัจจุบันได้อย่างง่ายดายเช่นนี้:

let currentDateTime = Date()

แต่Dateเป็นจำนวนจุด 64 บิตลอยวัดจำนวนวินาทีนับตั้งแต่วันที่อ้างอิงวันที่ 1 มกราคม 2001 00:00:00 UTC ฉันสามารถดูหมายเลขนั้นสำหรับวันที่และเวลาปัจจุบันโดยใช้

Date().timeIntervalSinceReferenceDate

ในช่วงเวลาของการเขียนนี้มันกลับมา497626515.185066อาจไม่ตรงกับสิ่งที่คุณกำลังมองหา อ่านต่อไป

การสร้างวันที่และเวลาอื่น

วิธีที่ 1

หากคุณทราบจำนวนวินาทีก่อนหรือหลังวันที่อ้างอิงคุณสามารถใช้

let someOtherDateTime = Date(timeIntervalSinceReferenceDate: -123456789.0) // Feb 2, 1997, 10:26 AM

วิธีที่ 2

แน่นอนว่าการใช้สิ่งต่าง ๆ เช่นปีเดือนวันและชั่วโมง (แทนที่จะเป็นวินาทีสัมพัทธ์) จะทำให้Dateง่ายขึ้น สำหรับสิ่งนี้คุณสามารถใช้DateComponentsเพื่อระบุส่วนประกอบจากนั้นCalendarสร้างวันที่ Calendarให้Dateบริบท มิฉะนั้นจะรู้ได้อย่างไรว่าเขตเวลาหรือปฏิทินใดที่จะแสดงใน

// Specify date components
var dateComponents = DateComponents()
dateComponents.year = 1980
dateComponents.month = 7
dateComponents.day = 11
dateComponents.timeZone = TimeZone(abbreviation: "JST") // Japan Standard Time
dateComponents.hour = 8
dateComponents.minute = 34

// Create date from components
let userCalendar = Calendar.current // user calendar
let someDateTime = userCalendar.date(from: dateComponents)

เวลาตัวย่อที่โซนอื่น ๆ สามารถพบได้ที่นี่ หากคุณเว้นว่างไว้ค่าเริ่มต้นคือการใช้เขตเวลาของผู้ใช้

วิธีที่ 3

วิธีรวบรัดมากที่สุด ( แต่ไม่จำเป็นต้องดีที่สุด) DateFormatterอาจจะใช้

let formatter = DateFormatter()
formatter.dateFormat = "yyyy/MM/dd HH:mm"
let someDateTime = formatter.date(from: "2016/10/08 22:31")

มาตรฐานทางเทคนิค Unicode แสดงรูปแบบอื่น ๆที่DateFormatterสนับสนุน

การแสดงวันที่และเวลา

วิธีที่ 1

หากคุณต้องการแสดงส่วนประกอบบางอย่างของวันที่หรือเวลาที่คุณสามารถใช้CalendarUnitเพื่อระบุส่วนประกอบที่คุณต้องการแยกออกDateมา

// get the current date and time
let currentDateTime = Date()

// get the user's calendar
let userCalendar = Calendar.current

// choose which date and time components are needed
let requestedComponents: Set<Calendar.Component> = [
    .year,
    .month,
    .day,
    .hour,
    .minute,
    .second
]

// get the components
let dateTimeComponents = userCalendar.dateComponents(requestedComponents, from: currentDateTime)

// now the components are available
dateTimeComponents.year   // 2016
dateTimeComponents.month  // 10
dateTimeComponents.day    // 8
dateTimeComponents.hour   // 22
dateTimeComponents.minute // 42
dateTimeComponents.second // 17

ดูคำตอบนี้ด้วย

วิธีที่ 2

วิธีที่ 1 ให้องค์ประกอบแก่คุณ แต่มันเป็นงานที่หนักมากในการจัดรูปแบบตัวเลขเหล่านั้นสำหรับทุกสไตล์ภาษาและภูมิภาค และคุณไม่จำเป็นต้อง สิ่งนี้ได้ทำเพื่อคุณในDateFormatterชั้นเรียนแล้ว

// get the current date and time
let currentDateTime = Date()

// initialize the date formatter and set the style
let formatter = DateFormatter()
formatter.timeStyle = .medium
formatter.dateStyle = .long

// get the date time String from the date object
formatter.string(from: currentDateTime) // October 8, 2016 at 10:48:53 PM

นี่คือความต่อเนื่องของรหัสข้างต้นที่แสดงตัวเลือกการจัดรูปแบบเพิ่มเติม:

// "10/8/16, 10:52 PM"
formatter.timeStyle = .short
formatter.dateStyle = .short
formatter.string(from: currentDateTime)

// "Oct 8, 2016, 10:52:30 PM"
formatter.timeStyle = .medium
formatter.dateStyle = .medium
formatter.string(from: currentDateTime)

// "October 8, 2016 at 10:52:30 PM GMT+8"
formatter.timeStyle = .long
formatter.dateStyle = .long
formatter.string(from: currentDateTime)

// "October 8, 2016"
formatter.timeStyle = .none
formatter.dateStyle = .long
formatter.string(from: currentDateTime)

// "10:52:30 PM"
formatter.timeStyle = .medium
formatter.dateStyle = .none
formatter.string(from: currentDateTime)

อย่างไรก็ตามโปรดจำไว้ว่านี่เป็นภาษาอังกฤษสำหรับภูมิภาคที่กำหนดให้กับสหรัฐอเมริกา สำหรับภาษาและภูมิภาคอื่น ๆ การจัดรูปแบบจะแตกต่างกัน

การศึกษาเพิ่มเติม


58

คุณสามารถใช้วิธีการอำนวยความสะดวกของ NSDateFormatter เช่น

func printTimestamp() {
  let timestamp = NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: .MediumStyle, timeStyle: .ShortStyle)
  print(timestamp)
}
printTimestamp() // Prints "Sep 9, 2014, 4:30 AM"

2
การสร้าง NSDateFormatter นั้นมีราคาแพง คุณควรสร้างและนำกลับมาใช้ใหม่
Rog

3
Swift 3: let timestamp = DateFormatter.localizedString (จาก: Date (), dateStyle: .short, timeStyle: .short)
Brian

51

Swift ทำให้การสร้างและใช้ส่วนขยายเป็นเรื่องง่าย ฉันสร้างsharedCode.swiftไฟล์และใส่ enums, ส่วนขยายและสิ่งสนุกสนานอื่น ๆ ไว้ในนั้น ฉันสร้างNSDateส่วนขยายเพื่อเพิ่มฟังก์ชั่นทั่วไปซึ่งลำบากและน่าเกลียดในการพิมพ์ซ้ำแล้วซ้ำอีก:

extension NSDate
{
    func hour() -> Int
    {
        //Get Hour
        let calendar = NSCalendar.currentCalendar()
        let components = calendar.components(.Hour, fromDate: self)
        let hour = components.hour

        //Return Hour
        return hour
    }


    func minute() -> Int
    {
        //Get Minute
        let calendar = NSCalendar.currentCalendar()
        let components = calendar.components(.Minute, fromDate: self)
        let minute = components.minute

        //Return Minute
        return minute
    }

    func toShortTimeString() -> String
    {
        //Get Short Time String
        let formatter = NSDateFormatter()
        formatter.timeStyle = .ShortStyle
        let timeString = formatter.stringFromDate(self)

        //Return Short Time String
        return timeString
    }
}

การใช้ส่วนขยายนี้คุณสามารถทำสิ่งต่อไปนี้ได้:

        //Get Current Date
        let currentDate = NSDate()

        //Test Extensions in Log
        NSLog("(Current Hour = \(currentDate.hour())) (Current Minute = \(currentDate.minute())) (Current Short Time String = \(currentDate.toShortTimeString()))")

ซึ่งเวลา 11:51 น. จะเขียนออกมา:

(ชั่วโมงปัจจุบัน = 11) (นาทีปัจจุบัน = 51) (สตริงเวลาสั้นปัจจุบัน = 11:51 AM)


26

Swift 2 คำตอบ:

 let date = NSDate()
 let calendar = NSCalendar.currentCalendar()
 let components = calendar.components([.Hour, .Minute], fromDate: date)
 let hour = components.hour
 let minutes = components.minute

23

สวิฟต์ 4

let dateFormatter : DateFormatter = DateFormatter()
//  dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.dateFormat = "yyyy-MMM-dd HH:mm:ss"
let date = Date()
let dateString = dateFormatter.string(from: date)
let interval = date.timeIntervalSince1970

เอาท์พุท

2018-May-01 10:41:31


1
ไม่เคยใช้ช่วงเวลา
Nerdy Bunz

11

สวิฟท์ 3:

static func currentTime() -> String {
    let date = Date()
    let calendar = Calendar.current
    let hour = calendar.component(.hour, from: date)
    let minutes = calendar.component(.minute, from: date)
    return "\(hour):\(minutes)"
}

ป.ล. - ไม่แน่ใจว่าคำถามนั้นหมายถึงอะไรอย่างแน่นอนโดยรับเวลาปัจจุบัน (และชั่วโมง) เป็นวันที่ แต่หวังว่าข้างต้นควรอธิบายให้เพียงพอที่จะตอบคำถาม


คำตอบของ SaRaVaNaN DM ด้านบนมีส่วนเสริม '()' ที่ส่วนท้ายของ Calendar.current
Charlie Seligman

10

ด้วย Swift 5 Foundationมีวิธีมากมายในการรับค่าชั่วโมงจากDateวัตถุ ตามความต้องการของคุณคุณอาจเลือกหนึ่งในสี่ต่อไปสนามเด็กเล่นโค้ด


# 1 ใช้Calendar dateComponents(_:from:)วิธีการ

CalendardateComponents(_:from:)มีวิธีการที่เรียกว่า dateComponents(_:from:)มีการประกาศดังต่อไปนี้:

func dateComponents(_ components: Set<Calendar.Component>, from date: Date) -> DateComponents

ส่งคืนส่วนประกอบวันที่ทั้งหมดของวันที่โดยใช้เขตเวลาของปฏิทิน

การใช้งาน:

import Foundation

let date = Date()
let dateComponents = Calendar.current.dateComponents([.hour], from: date)
let hour = dateComponents.hour
print(String(describing: hour)) // may print: Optional(13)

# 2 ใช้Calendar component(_:from:)วิธีการ

Calendarcomponent(_:from:)มีวิธีการที่เรียกว่า component(_:from:)มีการประกาศดังต่อไปนี้:

ส่งคืนค่าสำหรับหนึ่งองค์ประกอบของวันที่

func component(_ component: Calendar.Component, from date: Date) -> Int

การใช้งาน:

import Foundation

let date = Date()
let hour = Calendar.current.component(.hour, from: date)
print(hour) // may print: 13

# 3 การใช้DateFormatter dateFormatคุณสมบัติ

DateFormatterdateFormatมีคุณสมบัติที่เรียกว่า dateFormatมีการประกาศดังต่อไปนี้:

var dateFormat: String! { get set }

สตริงรูปแบบวันที่ใช้โดยผู้รับ

การใช้งาน:

import Foundation

let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH"
let hour = dateFormatter.string(from: date)
print(hour) // may print: 13

# 4 ใช้Dateformatter setLocalizedDateFormatFromTemplate(_:)วิธีการ

DateformattersetLocalizedDateFormatFromTemplate(_:)มีวิธีการที่เรียกว่า setLocalizedDateFormatFromTemplate(_:)มีการประกาศดังต่อไปนี้:

func setLocalizedDateFormatFromTemplate(_ dateFormatTemplate: String)

ตั้งค่ารูปแบบวันที่จากเทมเพลตโดยใช้ภาษาที่ระบุสำหรับผู้รับ

การใช้งาน:

import Foundation

let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.setLocalizedDateFormatFromTemplate("HH")
let hour = dateFormatter.string(from: date)
print(hour) // may print: 13

7

ถ้าคุณแค่ต้องการชั่วโมงของวัน

let calendar = NSCalendar.currentCalendar()
var hour = calendar.component(.Hour,fromDate: NSDate())


6

ใช้ Date Formatter -Swift 3.0

//Date
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .medium
let dateString = "Current date is: \(dateFormatter.string(from: Date() as Date))"
labelfordate.text = String(dateString)


//Time    
let timeFormatter = DateFormatter()
timeFormatter.timeStyle = .medium
let timeString = "Current time is: \(timeFormatter.string(from: Date() as Date))"
labelfortime.text = String(timeString)

อัปเดตวันที่และเวลาทุกวินาที

override func viewDidLoad() {
super.viewDidLoad()

timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(DateAndTime.action), userInfo: nil, repeats: true)

       }

func action()
    {
    //Date
    let dateFormatter = DateFormatter()
    dateFormatter.dateStyle = .medium
    let dateString = "Current date is: \(dateFormatter.string(from: Date() as Date))"
    labelfordate.text = String(dateString)


    //Time
    let timeFormatter = DateFormatter()
    timeFormatter.timeStyle = .medium
    let timeString = "Current time is: \(timeFormatter.string(from: Date() as Date))"
    labelfortime.text = String(timeString)

    }

หมายเหตุ: DateAndTimeในรหัสจับเวลาเป็นชื่อคลาส


5

ฉันรู้ว่ามีคำตอบมากมาย แต่ฉันคิดว่าของฉันอาจจะสะดวกกว่าสำหรับคนจำนวนมาก

extension String {
    init(epoch: Double) {
        let date = Date(timeIntervalSince1970: epoch)

        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "dd/MM/yyyy HH:mm:ssZZZ"

        self = dateFormatter.string(from: date)
    }
}

4

คุณสามารถลองสิ่งนี้

func getTime() -> (hour:Int, min:Int, sec:Int) {
        let currentDateTime = NSDate()
        let calendar = NSCalendar.currentCalendar()
        let components = calendar.components([.Hour,.Minute,.Second], fromDate: currentDateTime)
        let hour = components.hour
        let min = components.minute
        let sec = components.second
        return (hour,min,sec)
    }

ตอนนี้เรียกวิธีการนั้นและรับวันที่ด้วยชั่วโมงนาทีและวินาที

    let currentTime = self.getTime()
    print("Hour: \(currentTime.hour) Min: \(currentTime.min) Sec: \(currentTime.sec))")

4

คุณสามารถใช้ใน 4 หรือ 5 อย่างรวดเร็วร้อง

let date = Date()
let df = DateFormatter()
df.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dateString = df.string(from: date)

Ouput จะเป็นเหมือนเสียงร้อง

2019-12-20 09:40:08

3

Xcode 8.2.1 • Swift 3.0.2

extension Date {
    var hour: Int { return Calendar.autoupdatingCurrent.component(.hour, from: self) }
}

let date = Date()      // "Mar 16, 2017, 3:43 PM"
let hour = date.hour   // 15

หรือแม้แต่เพียงแค่Date().hour
NoodleOfDeath

1
@NoodleOfDeath แน่นอน ขึ้นอยู่กับว่าจำเป็นต้องมีการอ้างอิงถึงวันที่หรือไม่
Leo Dabus

จริงมากและฉันคิดว่าเพื่อจุดประสงค์ที่เข้มข้นทั้งหมดคุณต้องการใช้ตัวแปรวันที่เดียวกันเมื่อสร้างส่วนประกอบวันที่ที่เกี่ยวข้องแทนที่จะสร้างวันที่ใหม่สำหรับองค์ประกอบวันที่แต่ละรายการ
NoodleOfDeath

3

ขยายไปสู่โซลูชั่นที่กระชับของ noiivนี่คือการนำ Swift 3/4 ที่กระชับยิ่งขึ้น

สวิฟท์ 3/4

let components = Calendar.current.dateComponents([.hour, .minute], from: Date())
let (hour, minute) = (components.hour, components.minute)

นอกจากนี้เรายังมีส่วนขยายของ Leo Dabus ด้วย :

extension Date {

    func components(_ components: Set<Calendar.Component>) -> DateComponents {
        return Calendar.current.dateComponents(components, from: self)
    }

    func component(_ component: Calendar.Component) -> Int {
        return Calendar.current.component(component, from: self)
    }

    var era: Int { return component(.era) }
    var year: Int { return component(.year) }
    var month: Int { return component(.month) }
    var day: Int { return component(.day) }
    var hour: Int { return component(.hour) }
    var minute: Int { return component(.minute) }
    var second: Int { return component(.second) }
    var weekday: Int { return component(.weekday) }
    var weekdayOrdinal: Int { return component(.weekdayOrdinal) }
    var quarter: Int { return component(.quarter) }
    var weekOfMonth: Int { return component(.weekOfMonth) }
    var weekOfYear: Int { return component(.weekOfYear) }
    var yearForWeekOfYear: Int { return component(.yearForWeekOfYear) }
    var nanosecond: Int { return component(.nanosecond) }
    var calendar: Calendar? { return components([.calendar]).calendar }
    var timeZone: TimeZone? { return components([.timeZone]).timeZone }

}

และใช้มันอย่างนั้น:

let date = Date()
let (hour, minute) = (date.hour, date.minute)

ไม่จำเป็นต้องส่งคืนตัวเลือกเมื่อรับสิ่งต่าง ๆ เช่นปีเดือนวัน ฯลฯ ... จากDateวัตถุ วิธีการขององค์ประกอบ Btw ปฏิทินเหมาะสำหรับองค์ประกอบเดียว
Leo Dabus

@LeoDabus ตัวเลือกนั้นมีผู้เสนอเนื่องจากDateComponents.yearaccessor คือInt?
NoodleOfDeath

1
คุณสามารถใช้วิธีการส่วนประกอบปฏิทินซึ่งจะส่งกลับไม่จำเป็น นอกจากนี้คุณยังสามารถบังคับแกะ มันจะไม่ล้มเหลว แต่ฉันจะใช้วิธีองค์ประกอบองค์ประกอบเดียว
Leo Dabus

@LeoDabus ได้รับการอัปเดตเพื่อใช้componentวิธีการสำหรับ accessors เหล่านั้น
NoodleOfDeath

2

สำหรับวันที่เท่านั้นในรูปแบบเฉพาะ

    let dateFormatter1 = NSDateFormatter()
    dateFormatter1.dateStyle = .MediumStyle
    dateFormatter1.timeStyle = .NoStyle
    dateFormatter1.dateFormat = "dd-MM-yyyy"
    let date = dateFormatter1.stringFromDate(NSDate())

1
เพียงทราบเมื่อใช้ NSDateFormatter เหล่านี้เป็นวัตถุที่มีราคาแพงในการสร้างดังนั้นคุณอาจต้องการใช้สันทะลุทะลวงเพื่อใช้ NSDateFormatter เดียวกันอีกครั้งหากคุณใช้รหัสนี้ในตารางหรือคอลเลกชันหรือบางสิ่งบางอย่าง รูปแบบและรูปแบบสามารถเปลี่ยนแปลงได้เล็กน้อยตามที่ต้องการโดยไม่กระทบต่อประสิทธิภาพเท่าที่จำเป็น ไชโย.!
jcpennypincher

2

สวิฟท์ 5

func printTimestamp() {
    let timestamp = DateFormatter.localizedString(from: NSDate() as Date, dateStyle: .medium, timeStyle: .short)
    print(timestamp)
}

และฟังก์ชั่นการโทร printTimestamp ()


1

คุณสามารถสร้างส่วนขยายในแบบDateที่คุณสามารถเรียกมันได้อย่างง่ายดายในไฟล์อื่น ๆ นี่คือตัวอย่างของการขยายวันที่ที่ใช้คุณสมบัติที่คำนวณได้

มันจะพิมพ์ออกมา: "วันนี้, 4:55 PM"

extension Date {

    var formatter: DateFormatter? {
        let formatter = DateFormatter()
        formatter.dateStyle = .short
        formatter.timeStyle = .short
        formatter.doesRelativeDateFormatting = true

        return formatter
    }
}

1

คุณสามารถใช้ Swift4 หรือ Swift 5 เช่น:

let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let current_date = dateFormatter.string(from: date)
print("current_date-->",current_date)

ผลลัพธ์เช่น:

2020-03-02

0

ในกรณีที่คุณต้องการจัดรูปแบบคำตอบด้วยวิธีเฉพาะคุณสามารถใช้วิธีนี้ได้อย่างง่ายดายเริ่มต้น = "dd-MM-yyyy"

extension Date {

   func today(format : String = "dd-MM-yyyy") -> String{
      let date = Date()
      let formatter = DateFormatter()
      formatter.dateFormat = format
      return formatter.string(from: date)
   }
}

การรับวันที่วันนี้สามารถทำได้โดยใช้

Date().today() or Date().today("dd/MM/yyyy") 

0

สวิฟท์ 4:

extension Date
{
    func hour() -> Int
    {
    //Get Hour
    let calendar = Calendar.current
    let components = calendar.component(.hour, from: self)
    let hour = components

    //Return Hour
    return hour
    }


    func minute() -> Int
    {
    //Get Minute
    let calendar = Calendar.current
    let components = calendar.component(.minute, from: self)
    let minute = components

    //Return Minute
    return minute
        }
}

โปรดอธิบายคำตอบของคุณ
MrMaavin

มันจะขยายบูรณาการโมฆะวันที่ ... มันทำให้ตัวแปรชั่วโมงของวันที่โมฆะเป็นค่า int เช่นเดียวกับตัวแปรนาทีแล้วส่งกลับชั่วโมงและนาทีเป็นค่า int หลังจากนั้นคุณสามารถใช้มันในรหัสตามที่คุณต้องการ ตัวอย่างเช่นจากนั้นคุณสามารถเรียกค่าดังกล่าวจาก DateComponents () - DateComponents.hour = Date.hour () - มันให้คุณค่า int ของเวลาปัจจุบัน
Vladimir Sukanica

0
func getCurrentDate() -> Date {
    let date = Date()
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd"
    let dateInString  = dateFormatter.string(from: date)
    let dateinDate = dateFormatter.date(from: dateInString)
    return dateinDate!
}

0

นี่คือส่วนขยายSWIFTเพื่อรับเวลาตำแหน่งอุปกรณ์ปัจจุบันของคุณ (GMT)

func getGMTTimeDate() -> Date {
   var comp: DateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: self)
   comp.calendar = Calendar.current
   comp.timeZone = TimeZone(abbreviation: "GMT")!
   return Calendar.current.date(from: comp)!
}

รับเวลา: -

Date().getGMTTimeDate()

0

ทำงานร่วมกับ Swift 5 (Xcode 10 & Xcode 11) (จาก UTC UTC)

func getCurrentDateTime() {
    let now = Date()
    let formatter = DateFormatter()
    formatter.locale = Locale(identifier: "fr_FR")
    formatter.dateFormat = "EEEE dd MMMM YYYY HH:mm"
    myLabel.text = formatter.string(from: now)
    myLabel.font = UIFont(name: "HelveticaNeue-Light", size: 12)
    myLabel.textColor = UIColor.black
}

หากคุณต้องการแสดงเฉพาะวันที่ตั้ง formatter.dateFormat

formatter.dateFormat = "EEEE dd MMMM YYYY"

หากต้องการแสดงเฉพาะชั่วโมงเท่านั้นให้เปลี่ยนformatter.dateFormatเป็น

formatter.dateFormat = "HH:mm"

อย่าลืมที่จะเพิ่มในgetCurrentDateTime()viewDidLoad


-1

คุณสามารถรับจาก Dateformatter

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy"
let dateString = dateFormatter.string(from:Date())
print(dateString)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.