79 votes

Objective-C règle NSDate sur l'UTC actuel

Existe-t-il un moyen simple d'initier un NSDate avec la date/heure UTC actuelle ?

147voto

jessecurry Points 12114

[NSDate date];

Vous pouvez créer une catégorie qui fait quelque chose comme ceci :

-(NSString *)getUTCFormateDate:(NSDate *)localDate
{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
    [dateFormatter setTimeZone:timeZone];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString *dateString = [dateFormatter stringFromDate:localDate];
    [dateFormatter release];
    return dateString;
}

13voto

rcw3 Points 2347

NSDate est une référence à un intervalle à partir d'une date de référence absolue, le 1er janvier 2001 00:00 GMT. La méthode de la classe [NSDate date] renvoie donc une représentation de cet intervalle. Pour présenter ces données dans un format textuel en UTC, il suffit d'utiliser le NSDateFormatter avec le NSTimeZone (UTC) approprié pour effectuer le rendu nécessaire.

1voto

Tikhonov Alexander Points 5514

NSDate encapsulent un point unique dans le temps, indépendamment de tout système calendaire ou fuseau horaire particulier. Les objets date sont immuables, représentant un intervalle de temps invariable par rapport à une date de référence absolue (00:00:00 UTC le 1er janvier 2001).

Version Swift :

extension NSDate {
    func getUTCFormateDate() -> String {
        let dateFormatter = NSDateFormatter()
        let timeZone = NSTimeZone(name: "UTC")
        dateFormatter.timeZone = timeZone
        dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
        return dateFormatter.stringFromDate(self)
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X