UIDatePicker给错误的时间
可能重复:
从[NSDatedate]closures几个小时
NSDatedate不给我正确的时间
我有这段代码:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"HH:mm"]; NSString *formattedDateInString = [formatter stringFromDate:[self.datePicker date]]; NSLog(@"This is the formatted date (STRING) ---> %@" ,formattedDateInString); self.fromHourLabel.text = formattedDateInString; NSDate *date = [formatter dateFromString:formattedDateInString]; NSLog(@"This is the date (NSDate) ---> %@" ,date); self.fromHour = date;
我基本上从UIDatePicker获取date,将小时和分钟设置为标签文本,并将date保存到名为fromHour的属性中。 在-viewDidLoad
方法中,我也有:
self.datePicker.timeZone = [NSTimeZone localTimeZone];
这是输出:
正如你所看到的,用这个代码,我有两个主要的问题:
- 第一个输出是17.30,第二个是16:30(第一个输出是正确的,第二个是错误的),为什么?
- 第二个输出格式为“yyyy-MM-dd HH:mm:ss”,但我只需要“HH:mm”。
你可以帮我吗?
我知道有几十个现有的问题,但我找不到。
问题很简单。 当您使用NSLog
或包含%@
格式description
的string格式打印对象时,将在该对象上调用description
方法。
NSDate
的description
方法始终使用祖鲁时区(+0000)显示完整date。
如果你想要一个特定的格式打印date,然后使用NSDateFormatter
转换为一个string,并打印string。
编辑:根据评论的信息,这里的问题的一部分是,你从适当的NSDate
开始。 然后将其转换为格式为HH:mm
的string。 然后,您从该string中创build一个新的NSDate
。 更好的解决scheme是简单地保存原始date并避免创build第二个date。