Regăsirea ora locală curentă pe iPhone?

voturi
32

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?

Întrebat 19/02/2009 la 18:12
sursa de către utilizator
În alte limbi...                            


7 răspunsuri

voturi
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);
Publicat 23/10/2009 la 07:29
sursa de către utilizator

voturi
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]);
}
Publicat 14/08/2012 la 07:44
sursa de către utilizator

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

Cred că ar trebui să încercați acest lucru. Fusul orar este important.

Publicat 29/06/2011 la 04:23
sursa de către utilizator

voturi
10

A se vedea această întrebare similară pentru un răspuns. Va trebui să - l schimbe în format de date.

[[NSDate date] timeIntervalSince1970];
Publicat 19/02/2009 la 18:20
sursa de către utilizator

voturi
6

dacă sunteți în căutarea pentru a calcula intervale de timp, sunteți mai bine folosind CACurrentMediaTime

double currentTime = CACurrentMediaTime();
Publicat 26/11/2012 la 13:13
sursa de către utilizator

voturi
0

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.

Publicat 05/04/2017 la 09:51
sursa de către utilizator

voturi
0

O abordare mai scurtă

NSDate * now = [NSDate date];
timeLabel.text = [NSDateFormatter localizedStringFromDate:now
                                                dateStyle:NSDateFormatterNoStyle
                                                timeStyle:NSDateFormatterShortStyle];
Publicat 23/10/2016 la 17:20
sursa de către utilizator

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