Jeg ønsker å få gjeldende time og minutt på en brukers iPhone for visning i en app som ikke viser statuslinjen. Er det en enkel måte å gjøre dette?
Henter nåværende lokal tid på iPhone?
stemmer
32
7 svar
stemmer 112
112
// 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);
stemmer 13
13
-(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]);
}
stemmer 12
12
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;
Jeg tror du bør prøve dette. Tidssonen er viktig.
stemmer 10
10
Se denne lignende spørsmål for et svar. Du må endre den til datoformat.
[[NSDate date] timeIntervalSince1970];
stemmer 6
6
Hvis du ønsker å beregne tidsintervaller, er du bedre å bruke CACurrentMediaTime
double currentTime = CACurrentMediaTime();
stemmer 0
0
CFAbsoluteTimeGetCurrent ()
Absolutt tid måles i sekunder i forhold til absolutt referansedato 01.01.2001 00:00:00 GMT. En positiv verdi representerer en dato etter referansetidspunktet, representerer en negativ verdi en dato før den. For eksempel er det absolutt tid -32940326 tilsvarer 16 desember 1999 ved 17:54:34. Gjentatte kall til denne funksjonen garanterer ikke monotont økende resultater. Systemet tid kan reduseres på grunn av synkroniseringen med eksterne tidsreferanser eller på grunn av en eksplisitt bruker forandring av klokken.
stemmer 0
0
En kortere tilnærming
NSDate * now = [NSDate date];
timeLabel.text = [NSDateFormatter localizedStringFromDate:now
dateStyle:NSDateFormatterNoStyle
timeStyle:NSDateFormatterShortStyle];













