2016-08-05 30 views
0

Ich suche einige Stack-Abfragen für die Umwandlung von String in Datum und das funktioniert gut, aber ich konvertiere mein String-Datum in NSDate als es mich zurückgeben wird. Hier ist mein Code:Datum in String mit anderem Datumsformat konvertieren ios?

NSString *dateStr = @"2016-07-29 09:05"; 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"yyyy-MM-ddTHH:mm:ss.SSSZ"]; 
    NSDate *date = [dateFormat dateFromString:dateStr]; 

ich dieses Datum yyyy-MM-ddTHH:mm:ss.SSSZ dieses Format konvertieren möchten.

Was ist das Problem hier?

+0

Mögliche Duplikat [Datum Zeichenfolge NSDate in Ziel c/iOS konvertieren] (http://stackoverflow.com/questions/14398604/convert-date-string-to-nsdate-in-objective-c- ios) –

+0

Frage s gut, was Ausgang Sie erwartet –

+0

mein Datum ist nicht mit meinem Format übereinstimmen, aber das Format, was ich will, kann er 00 in Millisekunde nicht nehmen? – Kabali

Antwort

3

tun wie

NSString *dateStr = @"2016-07-29 09:05"; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
// set the date format related to what the string already you have 
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm"]; 
NSDate *date = [dateFormat dateFromString:dateStr]; 
[dateFormat setTimeZone:[NSTimeZone systemTimeZone]]; 
// again add the date format what the output u need 
[dateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]; 
NSString *finalDate = [dateFormat stringFromDate:date]; 
NSLog(@"finalDate==%@",finalDate); 

Ausgang

enter image description here

+0

Überprüfen Sie die aktualisierte Antwort –

+0

kann ich Null timstamp Datum von diesem bekommen?> Bedeutet, wie minus Stunden bilden Zeit, um Null tmistamp. – Kabali

0

Ihr Problem ist, dass Ihr Datumsformat @"yyyy-MM-ddTHH:mm:ss.SSSZ" nicht mit Ihrer Datumszeichenfolge @"2016-07-29 09:05" übereinstimmt. Sie müssen ein anderes Datumsformat verwenden.

Arbeitskopie - Objective C

NSString *dateStr = @"2016-07-29T09:05:00.00000Z"; 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]; 
    NSDate *date = [dateFormat dateFromString:dateStr]; 

Swift 2.x

var dateformater = NSDateFormatter() 
dateformater.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" 
var dateString:String = "2016-07-29T09:05:00.00000Z" 
let date:NSDate = dateformater.dateFromString(dateString)! 

print(date) 
+0

aber das ist Format, das ich will ... Wie kann ich es in es umwandeln? – Kabali

0

einfach Ihre formatterstyle ändern, wie unten

NSString *dateStr = @"2016-07-29 09:05"; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm"]; 
NSDate *date = [dateFormat dateFromString:dateStr]; 

Nach th um das Datum in folgenden Format umwandeln kann:

dateFormat.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"; 
NSString *str = [dateFormat stringFromDate:date]; 
NSLog(@"%@",str); 
+0

, aber ich möchte dieses 'JJJJ-MM-TTHH: mm: ss.SSSZ' Datumsformat – Kabali

+0

@Kabali Aber die Eingabezeichenfolge stimmt nicht mit diesem Format überein. Wie würdest du erwarten, dass das funktioniert? – Droppy

+0

@Kabali Sie wollen die Antwort in welchem ​​Format Datum oder Zeichenfolge? – ashmi123

0

diesen Code Versuchen.

NSString *dateStr = @"2016-07-29 09:05"; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyy-MM-dd hh:mm"]; 
NSDate *date = [dateFormat dateFromString:dateStr]; 
NSLog(@"the date is %@",date); 

NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"]; 
NSString *currentDate = [dateFormatter stringFromDate:date]; 
NSDate *finaldate = [dateFormatter dateFromString:currentDate]; 
NSLog(@"CurrentDate:%@", finaldate);