目前我的控制台上写着
This is the date: 2013-04-27 00:21:00 +0000
然而,在UIDatePicker(选择)中,我选择的是2013-04-26,而不是27。
-(IBAction)saveList:(id)sender {
NSDateFormatter *pickerFormatter = [[NSDateFormatter alloc] init];
[pickerFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
pickerFormatter.timeZone = [NSTimeZone localTimeZone];
pick.date = [pickerFormatter dateFromString:dateLabel.text];
NSLog(@"This is the date: %@", pick.date);
[ListItemObject saveListItem:[PFUser currentUser] withName:listFieldText withDate:pick.date];
[self.navigationController popViewControllerAnimated:YES];
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
}
此部分工作正常,并在标签中显示正确的日期。
-(IBAction)updateDateLabel:(id)sender {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-dd HH:mm"];
dateLabel.text = [formatter stringFromDate:pick.date];
}
答案 0 :(得分:0)
请注意,在控制台中,您会看到0000
时区,这意味着UTC,而您的用户界面则适用于系统默认时区(您的)。
这是因为调试控制台使用description
方法,将日期格式化为UTC,您可能希望添加类似
NSLog(@"%@", [formatter stringFromDate:pick.date]);
这样你就可以在UI和控制台中看到完全相同的东西。
答案 1 :(得分:0)
此外,您可以使用以下内容记录日期:
NSDate *now = [NSDate date];
NSLog(@"Now is %@", [now descriptionWithLocale:[NSLocale currentLocale]]);