【问题标题】:Setting the default time for UIDatePicker设置 UIDatePicker 的默认时间
【发布时间】:2014-05-29 14:34:46
【问题描述】:

我有一个日期选择器,用于选择day/month/year。它不显示时间。我正在使用该日期来安排在所选日期上午 9 点发送本地通知。如何在 UIDatePicker 上设置“默认”时间,以便在调用 datePicker.date 时返回用户选择的 yyyy/mm/dd + 9am。目前,默认情况下附加到 UIDatePicker 的时间似乎是随机的。

基于答案中的伪代码的工作代码

NSDate *date = _datePicker.date;

NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:date];
[components setHour:9];
[components setMinute:0];

NSDate *dateWithTime = [calendar dateFromComponents:components];

【问题讨论】:

  • 对我来说时间似乎是 17:00 UTC?这就是你说的随机吗?我在文档中寻找一些关于为什么 17:00 UTC 应该特别的参考

标签: ios objective-c


【解决方案1】:

您不能在 datePicker 上执行此操作。但是你可以操纵结果。您可以使用NSCalendarNSDateComponents 更改日期时间。

伪代码:

NSDate *date = datePicker.date;
NSCalendar *cal = gregorian calendar;
NSDateComponents *components = [cal componentsFromDate:date];
components.hour = 11;
components.minuts = 14;
components.seconds = 0;
NSDate *dateWithTime11_14 = [cal dateFromComponents:components];

【讨论】:

  • 我认为可能是这种情况。谢谢。我使用了代码,它可以工作。我将在我的问题中发布工作代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-26
  • 1970-01-01
  • 1970-01-01
  • 2013-04-11
  • 2019-09-24
  • 1970-01-01
相关资源
最近更新 更多