【发布时间】:2015-12-09 04:40:54
【问题描述】:
在过去的 4 个小时里,我一直在尝试解决这个问题,但似乎无法弄清楚如何解决这个问题。用户进入应用程序并选择日历上的日期。所选日期只是一个NSDate。然后,用户可以选择由hours、minutes 和seconds 组成的时间,然后他们可以选择AM 或PM。
假设用户选择了6:57 PM 的时间。我需要修改他们在日历上选择日期时创建的原始NSDate,并更改它的时间数据以匹配用户刚刚设置的6:57 PM 时间。
我一直在使用NSCalendar 类的dateBySettingHour 函数,效果很好。唯一的问题是我无法修改 AM/PM 值。我所能做的就是将小时、分钟和秒传递给它。代码如下:
calendar.dateBySettingHour(hours, minute: minutes, second: seconds, ofDate: selectedDate, options: NSCalendarOptions())
我一直在玩 NSDateFormatter、NSDateComponents 和 NSCalendar 并在此处查看示例,但我似乎无法完全理解这一点。
对我来说,最简单和最有效的方法是创建一个 ISO 8601 日期格式的最终日期,该日期格式与原始 NSDate 具有正确的月、日和年信息,但现在也有正确的时间信息,包括用户选择的AM/PM 设置?
我知道尝试使用dateBySettingHour 是不可能的,但我现在愿意尝试任何事情。
【问题讨论】:
-
用户如何选择时间?用
UIDatePicker?还是其他方式? -
当用户选择 PM 时,为什么不将 12 小时加到小时?
标签: swift nsdate nsdateformatter nscalendar nsdatecomponents