2016-08-08 1 views
0

J'ai eu l'horodatage en millisecondes suivant:NSDateFormatter: erreur dans la conversion Date

NSDate * date = [NSDate dateWithTimeIntervalSince1970:1470524933.923123]; 
    NSDate * date2 = [NSDate dateWithTimeIntervalSince1970:1470666561.000]; 

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"yyyy-MM-dd 'at' HH:mm:ss"]; 
    NSString * dateInString = [dateFormatter stringFromDate:date]; 

Quand je le lance, je reçois le texte suivant:

2016-08-07 à 00: 08:53, 08/08/2016 à 15:29:21

Toutefois, la première date devrait être comme suit selon le epoch time converter website I am using:

Votre fuseau horaire: 07/08/2016, 12:08:53 AM GMT + 1: 00 DST

Il dit 00 plutôt que 12. Pourquoi?

+3

12 AM est minuit, non? – Larme

+0

Droite. J'avais raté ça :). Merci – mm24

+0

Vous formatez la date au format 24 heures (HH). Si vous voulez 12 heures et AM/PM définir le format de la date en conséquence – vadian

Répondre

1

Essayez de régler le TimeZone de votre NSDateFormatter à GMT

[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]]; 

Comme larme et Vadian suggéré si vous voulez 12 pour heures ce format

[dateFormatter setDateFormat:@"yyyy-MM-dd 'at' hh:mm:ss a"];