【发布时间】:2016-07-16 11:36:24
【问题描述】:
简单的问题,烦人的问题。 我有一个日期选择器,我可以用它选择一个时间(比如上午 11 点)。然后是一个连接到将时间打印到控制台的方法的按钮。从字面上看,只是一个五行项目。打印到控制台的时间显示比我设置的时间早一个小时(因此,如果我设置 11 AM,它会打印 10 AM 等等)。我的 Mac 上的时区设置正确,时钟显示正确的时间。我查看了 Stack Overflow 并看到了一些涉及 NSCalendar 和组件等的很长的答案……但我很确定这应该是单行的。在我继续点燃我的 mac 之前,请帮忙。谢谢
----------------------------------- - - - - - - - - 编辑 - - - - - - - - - - - - - - - - - -----------------------------
好的,我会发布一些代码,看看它是否更清楚:
- (IBAction)setReminder:(id)sender{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString *dateString = [formatter stringFromDate:self.datePicker.date];
NSLog(@"Setting a reminder for: %@", dateString);
NSDate *date = [formatter dateFromString:dateString];
NSLog(@"another proof that date is right: %@", date);
UILocalNotification *note = [[UILocalNotification alloc]init];
note.alertBody = @"This is a reminder!";
note.fireDate = date;
[[UIApplication sharedApplication] scheduleLocalNotification:note];}
第一个 NSLog 返回正确的时间,但第二个 NSLog 返回的时间比使用日期选择器设置的小时早一个小时,因此永远不会触发通知。我究竟做错了什么?交易
【问题讨论】:
-
请向我们展示您尝试过的代码。
-
是的,发布您尝试过的代码!!
-
我已经用一些代码编辑了文本。
标签: ios objective-c datepicker timezone nsdate