如何在 iOS 中的 UIDatePicker 中仅显示从现在开始的 7 天?
How to show only seven days from now in UIDatePicker in iOS?
我只需要在 7 天后展示。如何使用 UIDatePicker 实现此目的以及我们如何为 UIDatePicker 设置最小和最大日期。提前致谢。
[datePicker setMinimumDate:[NSDate date]];
[datePicker setMaximumDate:[NSDate dateWithTimeIntervalSinceNow:60*60*24*7]];
他只想要 7 天,包括当前日期。
关于过于简单地增加时间的小警告:简单地增加秒数可能会遇到反对夏令时转换的边缘情况(例如)。使用 NSCalendar 来帮助管理时间计算总是一个好主意。
NSDate *today = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
calendar.timeZone = [NSTimeZone localTimeZone];
NSDate *endDate = [calendar dateByAddingUnit:NSCalendarUnitDay value:7 toDate:today options:0];
在夏令时发生在 7 天期间的情况下,上述代码中产生的 endDate 将与简单地添加秒数相差一小时。那一小时可能会跨越一天的变化,导致(罕见的)边缘案例失败。
在日期选择器中设置最小和最大日期:
[datePicker setMinimumDate:[NSDate date];
[datePicker setMaximumDate:[[NSDate date] dateByAddingTimeInterval:60*60*24*7]];
我只需要在 7 天后展示。如何使用 UIDatePicker 实现此目的以及我们如何为 UIDatePicker 设置最小和最大日期。提前致谢。
[datePicker setMinimumDate:[NSDate date]];
[datePicker setMaximumDate:[NSDate dateWithTimeIntervalSinceNow:60*60*24*7]];
他只想要 7 天,包括当前日期。
关于过于简单地增加时间的小警告:简单地增加秒数可能会遇到反对夏令时转换的边缘情况(例如)。使用 NSCalendar 来帮助管理时间计算总是一个好主意。
NSDate *today = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
calendar.timeZone = [NSTimeZone localTimeZone];
NSDate *endDate = [calendar dateByAddingUnit:NSCalendarUnitDay value:7 toDate:today options:0];
在夏令时发生在 7 天期间的情况下,上述代码中产生的 endDate 将与简单地添加秒数相差一小时。那一小时可能会跨越一天的变化,导致(罕见的)边缘案例失败。
在日期选择器中设置最小和最大日期:
[datePicker setMinimumDate:[NSDate date];
[datePicker setMaximumDate:[[NSDate date] dateByAddingTimeInterval:60*60*24*7]];