स्विफ्ट 4 के साथ परीक्षण किया गया
वर्तमान तिथि और समय प्राप्त करना
आप वर्तमान तिथि और समय इस प्रकार प्राप्त कर सकते हैं:
let currentDateTime = Date()
हालांकि, Date
1 जनवरी 2001 की 00:00:00 UTC की संदर्भ तिथि के बाद से सेकंड की संख्या को मापने वाला 64-बिट फ्लोटिंग पॉइंट है । मैं वर्तमान डेटाटाइम का उपयोग करके उस संख्या को देख सकता हूं
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")
यूनिकोड तकनीकी मानकों अन्य प्रारूपों के प्रदर्शन कि 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)
हालांकि, ध्यान रखें कि यह अमेरिका के लिए निर्धारित क्षेत्र के साथ अंग्रेजी के लिए है। अन्य भाषाओं और क्षेत्रों के लिए प्रारूपण अलग दिखेगा।
आगे के अध्ययन