Henter nåværende lokal tid på iPhone?

stemmer
32

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?

Publisert på 19/02/2009 klokken 17:12
kilden bruker
På andre språk...                            


7 svar

stemmer
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);
Svarte 23/10/2009 kl. 06:29
kilden bruker

stemmer
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]);
}
Svarte 14/08/2012 kl. 06:44
kilden bruker

stemmer
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.

Svarte 29/06/2011 kl. 03:23
kilden bruker

stemmer
10

Se denne lignende spørsmål for et svar. Du må endre den til datoformat.

[[NSDate date] timeIntervalSince1970];
Svarte 19/02/2009 kl. 17:20
kilden bruker

stemmer
6

Hvis du ønsker å beregne tidsintervaller, er du bedre å bruke CACurrentMediaTime

double currentTime = CACurrentMediaTime();
Svarte 26/11/2012 kl. 12:13
kilden bruker

stemmer
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.

Svarte 05/04/2017 kl. 09:51
kilden bruker

stemmer
0

En kortere tilnærming

NSDate * now = [NSDate date];
timeLabel.text = [NSDateFormatter localizedStringFromDate:now
                                                dateStyle:NSDateFormatterNoStyle
                                                timeStyle:NSDateFormatterShortStyle];
Svarte 23/10/2016 kl. 17:20
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more