एनएसडीएटी ऑब्जेक्ट प्राप्त करने का सबसे प्रभावी तरीका क्या है जो वर्तमान दिन के मध्यरात्रि का प्रतिनिधित्व करता है?आज रात आधी रात में मैं एनएसडीएट ऑब्जेक्ट कैसे प्राप्त कर सकता हूं?
उत्तर
इस प्रयास करें:
NSDate *const date = NSDate.date;
NSCalendar *const calendar = NSCalendar.currentCalendar;
NSCalendarUnit const preservedComponents = (NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay);
NSDateComponents *const components = [calendar components:preservedComponents fromDate:date];
NSDate *const normalizedDate = [calendar dateFromComponents:components];
मेरे लिए काम नहीं करते हैं। मेरी वर्तमान तिथि के लिए '2013-08-22 10:05:45 + 0000' रिटर्न' 2013-08-21 22:00:00 + 0000' है। तब मैंने 'NSDateComponents' का उपयोग किया है और 'setHour',' setMinute' और 'setHour' को 0 के साथ भेज दिया है और अभी भी कोई अच्छा नहीं है। –
आपके द्वारा यहां पोस्ट की गई तिथि स्ट्रिंग को सिम्युलेटर में स्पष्ट रूप से लॉग किया गया था। यह स्वचालित रूप से आपके टाइमज़ोन को अपनाने लगता है, संग्रहीत वास्तविक दिनांक मध्यरात्रि में है। –
नहीं, यह असली डिवाइस है। अभी भी यह नहीं समझ सकता ... –
कोशिश यह:
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *now = [NSDate date];
NSDateComponents *components = [gregorian components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:now];
NSDateFormatter* df = [[NSDateFormatter alloc]init];
[df setDateFormat:@"MM/dd/yyyy HH:mm:ss.SSS"];
NSLog(@"%@",[df stringFromDate:[gregorian dateFromComponents:components]]);
NSCalendar *cal = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
[cal setTimeZone:[NSTimeZone systemTimeZone]];
NSDateComponents * comp = [cal components:(NSYearCalendarUnit| NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit) fromDate:[NSDate date]];
[comp setMinute:0];
[comp setHour:0];
[comp setSecond:0];
NSDate *startOfToday = [cal dateFromComponents:comp];
आप 23 के रूप में 23:59 तो सेट घटक के घंटे और 59
आपका उत्तर सेकंड उपेक्षा करता है ... – ArtOfWarfare
के रूप में मिनट के रूप में आधी रात मतलब तो आप एनएसडीएट के लिए मध्यरात्रि मूल्य प्राप्त करने के लिए निम्न विधि का उपयोग कर सकते हैं।
- (NSDate *)dateAtBeginningOfDayForDate:(NSDate *)inputDate
{
// Use the user's current calendar and time zone
NSCalendar *calendar = [NSCalendar currentCalendar];
NSTimeZone *timeZone = [NSTimeZone systemTimeZone];
[calendar setTimeZone:timeZone];
// Selectively convert the date components (year, month, day) of the input date
NSDateComponents *dateComps = [calendar components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:inputDate];
// Set the time components manually
[dateComps setHour:0];
[dateComps setMinute:0];
[dateComps setSecond:0];
// Convert back
NSDate *beginningOfDay = [calendar dateFromComponents:dateComps];
return beginningOfDay;
}
Thkis यहां website से लिया गया है।
स्विफ्ट:
let cal = NSCalendar.currentCalendar()
//tip:NSCalendarUnit can be omitted, but with the presence of it, you can take advantage of Xcode's auto-completion
var comps = cal.components(NSCalendarUnit.YearCalendarUnit | .MonthCalendarUnit | .DayCalendarUnit | .HourCalendarUnit | .MinuteCalendarUnit | .SecondCalendarUnit, fromDate: NSDate())
comps.hour = 0
comps.minute = 0
comps.second = 0
let midnightOfToday = cal.dateFromComponents(comps)!
स्विफ्ट 2.2:
let cal = NSCalendar.currentCalendar()
let comps = cal.components([.Year, .Month, .Day, .Hour, .Minute, .Second], fromDate: NSDate())
comps.hour = 0
comps.minute = 0
comps.second = 0
let midnightOfToday = cal.dateFromComponents(comps)!
ऑब्जेक्टिव-सी:
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *comps = [cal components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit) fromDate:[NSDate date]];
[comps setHour:0];
[comps setMinute:0];
[comps setSecond:0];
NSDate *midnightOfToday = [cal dateFromComponents:comps];
NSDate *now = [NSDate date];
NSDate *beginningOfToday = nil;
[[NSCalendar currentCalendar] rangeOfUnit:NSDayCalendarUnit startDate:&beginningOfToday interval:NULL forDate:now];
iOS 8 में नई एपीआई
+०१२३५१६४१०६iOS 8 NSCalendar पर एक नई पद्धति startOfDayForDate बुलाया भी शामिल है, जो उपयोग करने के लिए वास्तव में आसान है:
let startOfToday = NSCalendar.currentCalendar().startOfDayForDate(NSDate())
एप्पल के विवरण:
यह API देता है कि किसी निश्चित तिथि के पहले पल तारीख । [NSDate तिथि] में पास करें, उदाहरण के लिए, यदि आप "आज" की शुरुआत चाहते हैं। यदि दो मध्यरात्रि थे, तो यह पहला लौटाता है। यदि कोई नहीं था, तो यह पहला क्षण देता है जो अस्तित्व में था।
अद्यतन, समय क्षेत्र के बारे में:
के बाद से startOfDayForDate NSCalendar पर एक विधि है, यह NSCalendar के समय क्षेत्र का उपयोग करता है। अगर मैं क्या समय हुआ न्यूयॉर्क में थे देखना चाहता था, जब आज लॉस एंजिल्स में शुरू हुआ, मैं ऐसा कर सकता है तो:
let losAngelesCalendar = NSCalendar.currentCalendar().copy() as! NSCalendar
losAngelesCalendar.timeZone = NSTimeZone(name: "America/Los_Angeles")!
let dateTodayBeganInLosAngeles = losAngelesCalendar.startOfDayForDate(NSDate())
dateTodayBeganInLosAngeles.timeIntervalSince1970
let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = .MediumStyle
dateFormatter.timeStyle = .ShortStyle
dateFormatter.timeZone = NSTimeZone(name: "America/New_York")!
let timeInNewYorkWhenTodayBeganInLosAngeles = dateFormatter.stringFromDate(dateTodayBeganInLosAngeles)
print(timeInNewYorkWhenTodayBeganInLosAngeles) // prints "Jul 29, 2015, 3:00 AM"
क्या यह समय क्षेत्र को संभालता है? – ftvs
@ftvs, हाँ, क्योंकि स्टार्टऑफडेफॉरडेट() एनएससीएंडरडर पर एक विधि है, तो आप अपने एनएससीएंडेंडर इंस्टेंस पर टाइमज़ोन सेट कर सकते हैं। ऊपर दिया गया उदाहरण कोड NSCalender.currentCalendar() का उपयोग करता है जो उपयोगकर्ता के वर्तमान समय क्षेत्र का उपयोग करता है। आप अपना स्वयं का एनएससीएंडरडर बना सकते हैं और समय क्षेत्र को विभिन्न मानों पर सेट कर सकते हैं। –
@ftvs, मैंने समय क्षेत्र के बारे में अधिक जानकारी के साथ अपना उत्तर अपडेट किया। –
let calendar = NSCalendar.currentCalendar()
let unitFlags: NSCalendarUnit = [.Year, .Month, .Day, .Minute, .Second]
let components = calendar.components(unitFlags , fromDate: NSDate())
components.hour = 0
components.minute = 0
components.second = 0
//Gives Midnight time of today
let midnightOfToday = calendar.dateFromComponents(components)!
में आपके उत्तर में कुछ स्पष्टीकरण शामिल है, ओपी ने इस – HaveNoDisplayName
आप इस्तेमाल कर सकते हैं NSCalendar के dateBySettingHour:minute:second:ofDate:options:
तो यह करने के रूप में आसान होगा:
NSCalendar *calendar = [NSCalendar currentCalendar];
calendar.timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
NSDate *midnight = [calendar dateBySettingHour:0 minute:0 second:0 ofDate:[NSDate date] options:0];
आईओएस 8 से, आप startDayForDate का उपयोग कर सकते हैं।
तो, आदेश आज की शुरुआत (वस्तुनिष्ठ -सी) प्राप्त करने के लिए:
NSDate * midnight; midnight = [[NSCalendar currentCalendar] startOfDayForDate: [NSDate date]];
का उपयोग क्यों किया, जबकि यह लिंक प्रश्न का उत्तर दे सकता है, यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाले पदों/18678902) – Akshay
- 1. MySQL प्रश्न केवल आधी रात को प्रश्न
- 2. दिनांक समय 24:00 (आधी रात)
- 3. आधी रात को ऐप विजेट कैसे अपडेट करें?
- 4. क्या आधी रात को खोजने का कोई बेहतर तरीका है?
- 5. रात रात जावास्क्रिप्ट चलाने के बाद सिस्टम लटका
- 6. प्वाइंट कि बहुभुज कि आधी रात से दोपहर तक का समय
- 7. पीएचपी सत्र सफारी, वेबकिट रात में काम नहीं कर
- 8. यह निर्धारित करने का सबसे अच्छा तरीका क्या है कि सिस्टम। डेटटाइम आधी रात है?
- 9. .NET में रात की प्रक्रिया को कैसे कार्यान्वित करें?
- 10. एंड्रॉइड का पता लगाने की रात
- 11. उद्देश्य सी - मैं एनएसडीएट से सप्ताह का दिन कैसे प्राप्त कर सकता हूं?
- 12. मैं टैग से ऑब्जेक्ट कैसे प्राप्त कर सकता हूं?
- 13. मैं कैसे जांच सकता हूं कि रेलवे पर रूबी में आज रात 9 बजे से 9 बजे (कल) के बीच वर्तमान समय
- 14. एक विकल्प [सूची [Int]] में 2.9.1 और 2.10 रात में
- 15. मैं प्रतिनिधि कैसे प्राप्त कर सकता हूं?
- 16. मैं सी # में वर्तमान समय कैसे प्राप्त कर सकता हूं?
- 17. टूटी रात के निर्माण को ठीक करने के लिए नीति
- 18. मैं पिरामिड में आईएनआई डेटा कैसे प्राप्त कर सकता हूं?
- 19. Ctest/CDash कार्यप्रवाह: तैनाती हर रात को बनाता है
- 20. मैं यूआई कैलेंडर कैसे प्राप्त कर सकता हूं?
- 21. मैं एक सीडीसी ऑब्जेक्ट से एचडीसी ऑब्जेक्ट कैसे प्राप्त कर सकता हूं?
- 22. मैं आईफोन के मौजूदा एनएसडीट में एक मिनट कैसे जोड़ सकता हूं और एनएसडीएट में सहेज सकता हूं?
- 23. मैं datetime.date ऑब्जेक्ट को python में datetime.datetime में कैसे परिवर्तित करूं?
- 24. मैं .NET में स्थानीय आईपी कैसे प्राप्त कर सकता हूं?
- 25. मैं डब्ल्यूपीएफ में डीपीआई कैसे प्राप्त कर सकता हूं?
- 26. मैं जावास्क्रिप्ट में टाइमज़ोन नाम कैसे प्राप्त कर सकता हूं?
- 27. मैं NSDictionary में पहला तत्व कैसे प्राप्त कर सकता हूं?
- 28. मैं AppEngine में बेस यूआरआई कैसे प्राप्त कर सकता हूं?
- 29. मैं जावा में सीपीयूड कैसे प्राप्त कर सकता हूं?
- 30. मैं .NET में cpu जानकारी कैसे प्राप्त कर सकता हूं?
देखें [एक समान प्रश्न के लिए मेरा उत्तर] (http://stackoverflow.com/a/43121423/ 1 9 6610 9) जो इस समस्या को हल करने के लिए चार तरीकों की पेशकश करता है (स्विफ्ट 3 के साथ)। –