我想知道如何从Swift 3中的时间选择器中选择时间减去3,10和20分钟。例如,当用户选择事件的开始时间时,能够接收通知3 ,从选择器时间值中选择前10或20分钟。我试过了
let value:TimeInterval = 1187.5
let periodComponents = startTimePicker.date.addingTimeInterval(-value)
提前20分钟, 但是我的价值落后了2个小时(可能是控制台只向我展示了GTM时间)。是否可以安排来自" periodComponens"在一周中的特定日期的每个星期重复一次?或者我应该使用其他减法方法?
答案 0 :(得分:0)
使用内置的Calendar
类:
let threeMinutesEarlier = Calendar.current.date(byAdding: .minute, value: -3, to: myPicker.date)
答案 1 :(得分:-1)
您的代码没有任何问题。
xcode控制台默认打印出GMT日期时间。如果您使用NSDateFormatter
将NSDate
转换为NSString
并将其打印出来,结果将如预期那样
如果您使用UILocalNotification
并希望将其安排为每周触发,则可以将其提供的属性repeatInterval
设置为NSCalendarUnitWeekOfYear
。
例如:
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
NSDate *fireTime; // Your desired date time.
localNotif.fireDate = fireTime;
localNotif.repeatInterval = NSCalendarUnitWeekOfYear;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];