如何在NSDate变量中只设置时间? [英] How can I set only time in NSDate variable?

查看:146
本文介绍了如何在NSDate变量中只设置时间?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有NSDate变量,只想更改时间(不应更改日期)。是否有可能?

I have NSDate variable and would like to change only time (date shouldn't be changed). Is it possible ?

例如:用户在DatePicker日期选择日期间隔(如果是开始日期我想将时间设置为00:00:00,如果它是结束日期,我将时间定为23:59:59)

Eg: user pick date interval in DatePicker date (If it's start date I would like to set time as 00:00:00, if it's end date, I set time as 23:59:59)

感谢大家的帮助。

此致,Alex 。

推荐答案

你会想要使用 NSDateComponents

NSDate *oldDate = datePicker.date; // Or however you get it.
unsigned unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth |  NSCalendarUnitDay;
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [calendar components:unitFlags fromDate:oldDate];
comps.hour   = 23;
comps.minute = 59;
comps.second = 59;
NSDate *newDate = [calendar dateFromComponents:comps];

这篇关于如何在NSDate变量中只设置时间?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆