在iPhone上检索当前的本地时间?

我期待在用户的iPhone上获取当前的小时和分钟,以显示在不显示状态栏的应用程序中。 有一个简单的方法来做到这一点?

// get current date/time NSDate *today = [NSDate date]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; // display in 12HR/24HR (ie 11:25PM or 23:25) format according to User Settings [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; NSString *currentTime = [dateFormatter stringFromDate:today]; [dateFormatter release]; NSLog(@"User's current time in their preference format:%@",currentTime); 
 -(void)currentTime { //Get current time NSDate* now = [NSDate date]; NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; NSDateComponents *dateComponents = [gregorian components:(NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond) fromDate:now]; NSInteger hour = [dateComponents hour]; NSString *am_OR_pm=@"AM"; if (hour>12) { hour=hour%12; am_OR_pm = @"PM"; } NSInteger minute = [dateComponents minute]; NSInteger second = [dateComponents second]; [gregorian release]; NSLog(@"Current Time %@",[NSString stringWithFormat:@"%02ld:%02ld:%02ld %@", (long)hour, (long)minute, (long)second,am_OR_pm]); } 
 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateStyle:NSDateFormatterMediumStyle]; [dateFormatter setTimeStyle:NSDateFormatterMediumStyle]; [dateFormatter setTimeZone:[NSTimeZone localTimeZone]]; NSString *currentTime = [dateFormatter stringFromDate:[NSDate date]] [dateFormatter release]; dateFormatter = nil; 

我想你应该试试这个。 时区很重要。

看到这个类似的问题的答案。 您将不得不将其更改为date格式。

 [[NSDate date] timeIntervalSince1970]; 

如果您正在计算时间间隔,则最好使用CACurrentMediaTime

 double currentTime = CACurrentMediaTime(); 

更短的方法

 NSDate * now = [NSDate date]; timeLabel.text = [NSDateFormatter localizedStringFromDate:now dateStyle:NSDateFormatterNoStyle timeStyle:NSDateFormatterShortStyle]; 

CFAbsoluteTimeGetCurrent()

绝对时间以相对于2001年1月1日00:00:00 GMT绝对参考date的秒数来测量。 正值表示参考date之后的date,负值表示之前的date。 例如,绝对时间-32940326相当于1999年12月16日17:54:34。 重复调用此函数并不能保证单调增加结果。 系统时间可能由于与外部时间参考同步或由于明确的时钟用户更改而降低。