Halen huidige lokale tijd op de iPhone?

stemmen
32

Ik ben op zoek naar de huidige uren en minuten te krijgen op de iPhone van een gebruiker voor weergave in een app die niet op de statusbalk vertoont. Is er een eenvoudige manier om dit te doen?

De vraag is gesteld op 19/02/2009 om 18:12
bron van user
In andere talen...                            


7 antwoorden

stemmen
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);
antwoordde op 23/10/2009 om 07:29
bron van user

stemmen
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]);
}
antwoordde op 14/08/2012 om 07:44
bron van user

stemmen
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;

Ik vind dat je dit proberen. De TimeZone is belangrijk.

antwoordde op 29/06/2011 om 04:23
bron van user

stemmen
10

Zie deze soortgelijke vraag een antwoord. Je moet om het te veranderen om uw datumnotatie.

[[NSDate date] timeIntervalSince1970];
antwoordde op 19/02/2009 om 18:20
bron van user

stemmen
6

als u op zoek bent naar tijdsintervallen te berekenen, bent u beter af met behulp van CACurrentMediaTime

double currentTime = CACurrentMediaTime();
antwoordde op 26/11/2012 om 13:13
bron van user

stemmen
0

CFAbsoluteTimeGetCurrent ()

Absolute tijd wordt gemeten in seconden ten opzichte van de absolute peildatum van 1 januari 2001 00:00:00 GMT. Een positieve waarde geeft een tijdstip na de referentiedatum, een negatieve waarde geeft een datum voor het. Bijvoorbeeld, de absolute tijd -32940326 is gelijk aan 16 december 1999 op 17:54:34. Herhaalde oproepen om deze functie te garanderen niet monotoon stijgend resultaten. De systeemtijd kan te wijten zijn om de synchronisatie met externe tijd referenties of afnemen als gevolg van een expliciete gebruiker verandering van de klok.

antwoordde op 05/04/2017 om 09:51
bron van user

stemmen
0

Een kortere aanpak

NSDate * now = [NSDate date];
timeLabel.text = [NSDateFormatter localizedStringFromDate:now
                                                dateStyle:NSDateFormatterNoStyle
                                                timeStyle:NSDateFormatterShortStyle];
antwoordde op 23/10/2016 om 17:20
bron van user

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