2011-06-25 12 views
21

एनएसडीएटी कॉम्पोनेंट्स मैं एक एनएसडीएटी के एनएसडीएट कॉम्पोनेंट कैसे प्राप्त करूं? मैं 2 तिथियों, बस सेकंड, मिनट, घंटे, दिन, महीने और एनएसडीएटी के वर्ष के बीच अंतर के घटक नहीं चाहता हूं? एक तिथि के घटकों हो रही है:एनएसडीएटी

उत्तर

38

वहाँ लिस्टिंग 3, Apple docs में एक उदाहरण है कि आप करने के लिए है 'या'

NSDate *today = [NSDate date]; 
NSCalendar *gregorian = [[NSCalendar alloc] 
         initWithCalendarIdentifier:NSGregorianCalendar]; 
NSDateComponents *weekdayComponents = 
        [gregorian components:(NSDayCalendarUnit | 
              NSWeekdayCalendarUnit) fromDate:today]; 
NSInteger day = [weekdayComponents day]; 
NSInteger weekday = [weekdayComponents weekday]; 

नोट एक साथ calendar units आप components विधि के कॉल में चाहते हैं।

+0

तुम मुझे हरा, हा! +1 –

+0

@ मार्टिन क्लेटन, हाय, मैंने एनएसडीएट कॉम्पोनेंट्स को विशेष समय, घंटे और दूसरा सेट कर दिया है और अब मैं उन NSDateComponents के साथ फिर से तारीख बनाना चाहता हूं। मैं उसे कैसे कर सकता हूँ? –

6

NSCalendar की विधि का उपयोग:

- (NSDateComponents *)components:(NSUInteger)unitFlags fromDate:(NSDate *)date

की तरह:

unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit; 
NSDate *date = [NSDate date]; 


NSCalendar * cal = [NSCalendar currentCalendar]; 
NSDateComponents *comps = [cal components:unitFlags fromDate:date]; 
0
स्विफ्ट में

2.x घटकों आप चाहते हैं इस तरह पारित कर रहे हैं।

let gregorianCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian) 
let weekdayHourMinutes = gregorianCalendar?.components([.Weekday, .Hour, .Minute], fromDate: date) 
2

को Apple डेवलपर API संदर्भ अनुसार, DateComponentssecond, minute, hour, day, month, year उदाहरण गुण है।


निम्नलिखित स्विफ्ट 3 खेल का मैदान कोड से पता चलता DateComponents का उपयोग कर एक Date उदाहरण से सेकंड, मिनट, घंटे, दिन, महीने और वर्ष घटकों पाने के लिए:

import Foundation 

var calendar = Calendar(identifier: .gregorian) 
calendar.timeZone = TimeZone(abbreviation: "CET")! 
let date = Date() 

// Get seconds, minutes, hours, day, month and year 
let components = calendar.dateComponents([.second, .minute, .hour, .day, .month, .year], from: date) 
let seconds = components.second 
let minutes = components.minute 
let hours = components.hour 
let day = components.day 
let month = components.month 
let year = components.year 

// Print components 
print(String(reflecting: seconds)) // prints Optional(33) 
print(String(reflecting: minutes)) // prints Optional(42) 
print(String(reflecting: hours)) // prints Optional(22) 
print(String(reflecting: day)) // prints Optional(17) 
print(String(reflecting: month)) // prints Optional(12) 
print(String(reflecting: year)) // prints Optional(2016) 

/* ... */ 

// Set a formatter in order to display date 
let formatter = DateFormatter() 
formatter.dateStyle = .short 
formatter.timeStyle = .long 
formatter.timeZone = TimeZone(abbreviation: "CET") 
formatter.locale = Locale(identifier: "fr_FR") 
print(formatter.string(from: date)) // prints 17/12/2016 22:42:33 UTC+1 
संबंधित मुद्दे