我有一個格式爲2018-01-19 18:30:00 +0000的NSDate對象。現在我只想改變時間組件。更改時間組件後,NSDate對象將爲2018-01-19 10:00:00。我曾嘗試過各種解決方案,但沒有成功。如果任何人有任何解決這個問題的幫助。謝謝你在前進NSDate問題
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components: NSCalendarUnitYear| NSCalendarUnitMonth| NSCalendarUnitDay fromDate:date];
[components setHour:hour];
[components setMinute:minute];
[components setSecond:second];
NSDate *newDate = [calendar dateFromComponents:components];
另一種解決方案我想是
NSDate *oldDate = date;
unsigned unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [calendar components:unitFlags fromDate:oldDate];
comps.hour = 10;
comps.minute = 00;
comps.second = 00;
NSDate *newDate = [calendar dateFromComponents:comps];
每次我得到的輸出是輸入日期的下一個日期
要更改日期這樣的2018年1月19日10:00日期: 00對嗎? – 2017-03-02 09:27:20
舊日期和新日期的關係是什麼? – tspentzas
你如何輸出日期? –