2012-04-08 24 views
4

我有一個NSString是這個代碼中的日期和時間:「YYYY-MM-DD HH:mm:SS」,我想像德國風格:「DD.MM. YYY HH:mm:DD「在IOS中的日期時間/字符串格式

如何解決?

+1

您需要使用[NSDateFormatter](https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/ Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html),google有很多關於這個話題的信息。 – GregularExpressions 2012-04-08 10:55:05

回答

15

實施例:

的NSString * currentDateString = @ 「2012年4月8日8點16分零零秒」;

NSLog(@"currentDateString: %@", currentDateString); 

NSDateFormatter *dateFormater = [[NSDateFormatter alloc] init]; 

[dateFormater setDateFormat:@"MM-DD-yyyy HH:mm:ss"]; 
NSDate *currentDate = [dateFormater dateFromString:currentDateString]; 
NSLog(@"currentDate: %@", currentDate); 

[dateFormater setDateFormat:@"yyyy-MM-DD HH:mm:ss"]; 
NSString *convertedDateString = [dateFormater stringFromDate:currentDate]; 
NSLog(@"convertedDateString: %@", convertedDateString); 

[dateFormater setDateFormat:@"DD.MM.yyy HH:mm:DD"]; 
NSString *germanDateString = [dateFormater stringFromDate:currentDate]; 
NSLog(@"germanDateString: %@", germanDateString); 

的NSLog輸出:
currentDateString:2012年4月8日八點16分00秒
的currentdate:2012-04-01 12點16分○○秒0000
convertedDateString:2012-04-92 08 :16:00
germanDateString:92.04.2012 08:16:92

+0

爲什麼月份從04變爲01? – nithinreddy 2013-01-10 05:31:53

+0

Apple Bug ID#12993321 – zaph 2013-01-10 23:46:16

+0

哦,這是固定的,還是即將被修復的?任何想法?我們該如何解決這個問題 – nithinreddy 2013-01-11 05:28:35

3
NSString* input = @"2012-04-08 13:05:49"; 

NSString* year = [input substringWithRange: NSMakeRange(0, 4)]; 
NSString* month = [input substringWithRange: NSMakeRange(5, 2)]; 
NSString* day = [input substringWithRange: NSMakeRange(8, 2)]; 
NSString* time = [input substringWithRange: NSMakeRange(11, 8)]; 

NSString* output = [NSString stringWithFormat:@"%@.%@.%@ %@",day,month,year,time]; 
+1

海事組織將會更好地解析它並將其格式化,而不是僅僅圍繞角色移動。除此之外,它會驗證該值是否合理。 – 2012-04-08 11:16:11

1

使用NSDateFormatter將其轉換爲NSDate對象,然後使用格式化程序導出字符串。請按照有關dateFromString & stringFromDate的文檔。一個日期字符串轉換成另一種格式的