Iphone NSDateComponents中可能存在的错误?

Iphone NSDateComponents中可能存在的错误?,iphone,ios,cocoa,nsdate,nsdatecomponents,Iphone,Ios,Cocoa,Nsdate,Nsdatecomponents,我只是在玩计时器,我发现: - (void)viewDidLoad{ [super viewDidLoad]; NSDate *date = [NSDate date]; dFormatter = [[NSDateFormatter alloc] init]; //instance variable NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGrego

我只是在玩计时器,我发现:

 - (void)viewDidLoad{
     [super viewDidLoad];
     NSDate *date = [NSDate date];
     dFormatter = [[NSDateFormatter alloc] init]; //instance variable

     NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

     unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit;
     NSDateComponents *dateC = [calendar components:unitFlags fromDate:date];
     [dateC setSecond:1];
     [dateC setHour:0];
     [dateC setMinute:0];

     NSDate *fireDate = [calendar dateFromComponents:dateC];
     [dFormatter setTimeStyle:NSDateFormatterLongStyle];
     [dFormatter setDateStyle:NSDateFormatterMediumStyle];
     NSLog(@"%@", [dFormatter stringFromDate:fireDate]);
 }
输出令人惊讶:10月4日凌晨12:00:01

我正在尝试设置一个计时器,从过去的几个小时开始计时


我应该报告这一点,还是有办法让那个日期变成像10月4日上午4点00分01分那样?

12点00分01分等于午夜后1秒。还是我在这里遗漏了什么?

我对此很抱歉。我尝试了很多不同的选择来改变它。当然,我来自一个实行24小时制的国家,有时也会遇到这样的问题:)我忍不住笑了。。。真有趣!如果你想在语言上正确,中午12点是不存在的。上午12点也没有。上午11:59:59到下午12:00:01之间的第二个是“子午线”,另一个12:00:00是“午夜”。但是,按照美国的惯例,中午被称为12:00pm,午夜被称为12:00am。(“子午线”指的是太阳在头顶的正上方——一天中的最高高度。)