可能重复:
Getting date from [NSDate date] off by a few hours
NSDate date don’t give me the right hour
我有这段代码:
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获取日期,将Hours和Minutes设置为标签文本,并将日期保存到名为fromHour的属性中。在-viewDidLoad
方法中,我也有:
self.datePicker.timeZone = [NSTimeZone localTimeZone];
这是输出:
正如您所看到的,使用此代码,我有两个主要问题:
你能帮助我吗?
答案 0 :(得分:4)
我知道有很多现有的问题可以解决这个问题,但我找不到一个。
问题很简单。使用NSLog
打印对象或包含%@
格式说明符的字符串格式时,将在对象上调用description
方法。
description
NSDate
方法始终使用祖鲁时区(+0000)显示完整日期。
如果您想要以特定格式打印日期,请使用NSDateFormatter
转换为字符串并打印字符串。
编辑:根据评论中的信息,这里的部分问题是您从正确的NSDate
开始。然后,将其转换为格式为HH:mm
的字符串。然后,您从该字符串创建一个新的NSDate
。更好的解决方案是简单地保存原始日期并避免创建第二个日期。