Ανάκτηση τρέχουσα τοπική ώρα στο iPhone;

ψήφοι
32

Ψάχνω να πάρει την τρέχουσα ώρα και λεπτό από το iPhone του χρήστη για την εμφάνιση σε μια εφαρμογή που δεν εμφανίζει τη γραμμή κατάστασης. Υπάρχει ένας απλός τρόπος για να το κάνουμε αυτό;

Δημοσιεύθηκε 19/02/2009 στις 18:12
πηγή χρήστη
Σε άλλες γλώσσες...                            


7 απαντήσεις

ψήφοι
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);
Απαντήθηκε 23/10/2009 στις 07:29
πηγή χρήστη

ψήφοι
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]);
}
Απαντήθηκε 14/08/2012 στις 07:44
πηγή χρήστη

ψήφοι
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;

Νομίζω ότι θα πρέπει να δοκιμάσετε αυτό. Η ζώνη ώρας του είναι σημαντικό.

Απαντήθηκε 29/06/2011 στις 04:23
πηγή χρήστη

ψήφοι
10

Δείτε αυτό το παρόμοιο ζήτημα για μια απάντηση. Θα πρέπει να το αλλάξετε σε μορφή ημερομηνίας σας.

[[NSDate date] timeIntervalSince1970];
Απαντήθηκε 19/02/2009 στις 18:20
πηγή χρήστη

ψήφοι
6

αν ψάχνετε για να υπολογίσει χρονικά διαστήματα, είστε σε καλύτερη θέση χρησιμοποιώντας CACurrentMediaTime

double currentTime = CACurrentMediaTime();
Απαντήθηκε 26/11/2012 στις 13:13
πηγή χρήστη

ψήφοι
0

CFAbsoluteTimeGetCurrent ()

Απόλυτος χρόνος μετριέται σε δευτερόλεπτα σε σχέση με το απόλυτο ημερομηνία αναφοράς της πρώτης Ιανουαρίου του 2001 00:00:00 GMT. Μια θετική τιμή αντιπροσωπεύει μια ημερομηνία μετά την ημερομηνία αναφοράς, μια αρνητική τιμή αντιπροσωπεύει μια ημερομηνία πριν από αυτό. Για παράδειγμα, τον απόλυτο χρόνο -32940326 ισοδυναμεί με 16 Δεκεμβρίου 1999 στις 17:54:34. Επανειλημμένες εκκλήσεις προς τη λειτουργία αυτή δεν εγγυώνται μονοτονικά αυξανόμενη αποτελέσματα. Η ώρα του συστήματος μπορεί να μειωθεί λόγω συγχρονισμό με εξωτερικές αναφορές του χρόνου ή λόγω ρητή αλλαγή χρήσης του ρολογιού.

Απαντήθηκε 05/04/2017 στις 09:51
πηγή χρήστη

ψήφοι
0

Μία βραχύτερη προσέγγιση

NSDate * now = [NSDate date];
timeLabel.text = [NSDateFormatter localizedStringFromDate:now
                                                dateStyle:NSDateFormatterNoStyle
                                                timeStyle:NSDateFormatterShortStyle];
Απαντήθηκε 23/10/2016 στις 17:20
πηγή χρήστη

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