Wie konvertiert man Datetime Zeitstempel zu einem NSDate? Wie macht man das Inverse?Convert Datetime C# zu Objective c und invertion
Meine Methode Datetime in eine Zeichenfolge zu konvertieren:
+(NSString*) dateTojson:(NSDate*)date{
return [NSString stringWithFormat:@"/Date(%f)/",(double)([date dateWithTimeIntervalSince1970] * 1000)];
}
Meine inverse Methode:
+(NSDate*) jsonToDate:(NSString *)json
{
double milisec = 0;
json = [[[json stringByReplacingOccurrencesOfString:@"/Date(" withString:@""] stringByReplacingOccurrencesOfString:@"/" withString:@""] stringByReplacingOccurrencesOfString:@"-0200" withString:@""];
NSArray *arr = [json componentsSeparatedByString:@"-"];
for(NSString *s in arr) {
if(![s isEqualToString:@""]){
milisec += [s doubleValue];
}
}
NSDate *date = [NSDate dateWithTimeIntervalSince1970:(milisec/1000.0)];
return date;
}
Wenn ich [self jsonToDate:@"/Date(1495497600)/"]
verwenden, wo 1495497600 me "2017.05.23", wobei das Verfahren darstellt, das Rück ein falsches Datum (Ergebnis = "01/18/1970"). Warum?
Hinweise:
ich bin nicht die Zeit bedenkt, nur Datum. Meine Variable milisec ist gleich 1495497600, also denke ich, das Problem ist die Methode dateWithTimeIntervalSince1970
.
bereits versuchen, einige Beiträge wie:
Convert milliseconds to NSDate
How to Convert a milliseconds to nsdate in objective C
1495497600 ist nicht "23.05.2013" es ist "23.05.2017". Überprüfen Sie den JSON, den Sie in dieser Zeile zurückgeben. Json = [[[] json stringByReplacingOccurrencesOfString ....... es in einen einfachen Texteditor kopieren, dort könnte ein falsch codiertes Zeichen drin sein. –
Ich aktualisiere die Frage, danke –