我正在显示时间。它会告诉我:时间:2012-06-18 23:00:00 +0000 但在使用NSDateFormatter之后我不知道为什么它会给我00:00:00 AM
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm:ss a"];
NSLog(@"TIME :%@",self.startDate);
NSDate *date = [NSDate date];
NSString * _startTime = [dateFormatter stringFromDate:date];
NSLog(@"current time : %@",_startTime);
NSString * _startTime1 = [dateFormatter stringFromDate:self.startDate];
NSLog(@"Start time : %@",_startTime1);
[dateFormatter release];
**Result is**
TIME :2012-06-18 23:00:00 +0000
current time : 17:05:41 PM
Start time : 00:00:00 AM
答案 0 :(得分:0)
您的第一个NSLog
以GMT时间输出日期(请注意尾随的+0000)。 NSDateFormatter
对象将日期格式化为指定的时区。您的NSLog
语句显示self.startDate
中的存储日期至少在一个时区的00:00:00 AM,并且格式化程序设置为该时区。格式化程序将默认为设备的时区。您可以将格式化板的时区设置为从格林威治标准时间0秒到上一个NSLog
语句中的23:00:00 PM:
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];