2012-04-08 18 views
4

私は、このコードでは "YYYY-MM-DD HH:mm:SS"の日時であるNSStringを持っていて、私はドイツ語のスタイルのようにそれを嫌っています: "DD.MM. YYY HH:mm:DD "IOSでの日時/文字列形式

解決方法は?

+1

(https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/ Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html)、Googleはこのトピックに関する多くの情報を持っています。 – GregularExpressions

答えて

15

別のフォーマットに1つの日付列を変換する例:

NSStringの* currentDateString = @ "2012年4月8日8時16分00秒"。

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日午前8時16分00秒
CURRENTDATE:2012-04-01 12時16分00秒0000
convertedDateString:2012-04-92 08 :16:00
germanDateString:92.04.2012 08:16:92

あなたは[NSDateFormatter]を使用する必要があります
+0

月が04から01に変更されるのはなぜですか? – nithinreddy

+0

アップルバグID#12993321 – zaph

+0

ああ、これは固定ですか、それとも固定されようとしていますか?何か案が?この問題を解決するために私たちは何をしますか – nithinreddy

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

それを解析して文字を囲むだけでなく、フォーマットする方がはるかに優れたIMOです。他のものとは別に、価値が合理的であることを検証します。 –

1

NSDateFormatterを使用してNSDateオブジェクトに変換し、その後、フォーマッタを使用して文字列をエクスポートします。 dateFromString & stringFromDateに関するドキュメントに従ってください。

関連する問題