2017-06-14 2 views
0

Ich versuche NSDate zu implementieren das aktuelle Datum mit dem folgenden Format zu generieren:iOS: NSDateFormatter aktuelle Datum mit Millisekunden zeigt Striche

2017-06-14T15:38.000Z 

ich die folgende Implementierung versucht:

-(void)currentDate 
{ 
    NSDate *date = [NSDate date]; 
    NSDateFormatter *formatter = [NSDateFormatter new]; 
    NSTimeZone *destinationTimeZone = [NSTimeZone systemTimeZone]; 
    formatter.timeZone = destinationTimeZone; 
    [formatter setDateStyle:NSDateFormatterLongStyle]; 
    [formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.ZZZ"]; 
    NSString *dateString = [formatter stringFromDate:date]; 
    NSLog(@"%@",dateString); 
} 

Aber Dies ist die Format-Datumszeichenkette, die ich erhalte:

2017-06-14T14:08:56.-0700 

Jeder von Ihnen weiß, wie m eingestellt werden kann y NSDateFormatter, um das folgende Datumsformat zu erhalten:

2017-06-14T15:38.000Z 

Ich werde Ihre Hilfe wirklich schätzen.

+0

.000Z nicht miliseconds ist, ist an der Zeit diference Respekt –

+0

@ReinierMelian in UTC-Zeit, können Sie das erklären? – user2924482

+0

Dieses Format JJJJ-MM-TT'T'HH: mm: ss.ZZZ ist Jahr, Monat, Tag und Uhrzeit in Stunden, Minuten und Sekunden und die ZZZ ist der Zeitunterschied in Bezug auf UTC-Zeit.-0700 bedeutet, dass Sie habe -7hrs Unterschied –

Antwort

1

Sie setzen die Zeitzone NSDateFormatter als systemTimeZone. Die Ausgabe ist also immer die Zeitzone Ihres Geräts (-7h w.r.t UTC time).

Hier ist mit dem Update:

-(void)currentDate 
{ 
    NSDate *date = [NSDate date]; 
    NSDateFormatter *formatter = [NSDateFormatter new]; 
    NSTimeZone *destinationTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"]; 
    formatter.timeZone = destinationTimeZone; 
    [formatter setDateStyle:NSDateFormatterLongStyle]; 
    [formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.ZZZ"]; 
    NSString *dateString = [formatter stringFromDate:date]; 
    NSLog(@"%@",dateString); 
} 

OUTPUT:

2017-06-15T05:11:35.+0000 
Verwandte Themen