Caut pentru a obține ora și minutul de pe iPhone unui utilizator pentru a fi afișate într-o aplicație care nu afișează bara de stare. Există o modalitate simplă de a face acest lucru?
Regăsirea ora locală curentă pe iPhone?
// get current date/time
NSDate *today = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
// display in 12HR/24HR (i.e. 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;
Cred că ar trebui să încercați acest lucru. Fusul orar este important.
A se vedea această întrebare similară pentru un răspuns. Va trebui să - l schimbe în format de date.
[[NSDate date] timeIntervalSince1970]; dacă sunteți în căutarea pentru a calcula intervale de timp, sunteți mai bine folosind CACurrentMediaTime
double currentTime = CACurrentMediaTime();
CFAbsoluteTimeGetCurrent ()
timp absolut se măsoară în secunde în raport cu data de referință absolută a unu ianuarie 2001 00:00:00 GMT. O valoare pozitivă reprezintă o dată după data de referință, o valoare negativă reprezintă o dată înainte de a fi. De exemplu, timpul absolut -32940326 este echivalent cu 16 decembrie 1999 la 17:54:34. repetate apeluri la această funcție nu garantează rezultate monoton crescătoare. Timpul de sistem poate scădea datorită sincronizării cu referințe externe de timp sau din cauza unei schimbări de utilizator explicit al ceasului.
O abordare mai scurtă
NSDate * now = [NSDate date];
timeLabel.text = [NSDateFormatter localizedStringFromDate:now
dateStyle:NSDateFormatterNoStyle
timeStyle:NSDateFormatterShortStyle];













