2016-11-03 19 views
0

ユーザが「システム環境設定」の「言語と地域」セクションでカスタム日付形式を設定したとします。スクリーンショット - http://imgur.com/gallery/dMy8uユーザーのカスタム日付書式文字列をnsdateに変換しますか?

私はこの日付をNSString表現(eg - @"201603/11")で表しています。これを自分の日付形式、つまり「MM/dd/yyyy」に変換したいと思います。私は次のコードを使用しています:

NSDateFormatter *formatter = [NSDateFormatter new]; 
formatter.dateFormat = [NSDateFormatter dateFormatFromTemplate:@"MM/dd/yyyy" 
                 options:0 
                 locale:[NSLocale systemLocale]]; 
[formatter setDateStyle:NSDateFormatterShortStyle]; 
NSDate *localDate = [formatter dateFromString:@"201603/11"]; 

しかし、localDateは常にnilを返します。

要するに、私のNSString表現は201603/11(ユーザによって設定されたフォーマット)であり、NSDate表現でこれを取得したいと思います。

+2

日付フォーマッタが間違っています。短いスタイルは短い文字列として日付を取得することです。 –

+0

@TejaNandamuri、はい問題は私のdateformatterにあります。私はdateStyleプロパティを削除しましたが、それでもlocalDateはnilを返します。どんな手掛かり? –

+0

[フォーマッタsetDateFormat:@ "yyyydd/MM"]; –

答えて

0
// User Date format 
NSDateFormatter *userFormatter = [NSDateFormatter new]; 
[userFormatter setDateFormat: @"yyyyMM/dd"]; 

NSDate *localDate = [userFormatter dateFromString:@"201610/31"]; 

NSLog(@"%@",localDate); //You will get, Year: 2016, Month:10, Day: 31 

// The date format you want 
NSDateFormatter *myFormatter = [NSDateFormatter new]; 
[myFormatter setDateFormat: @"MM/dd/yyyy"]; 

// Get date string from your local date object 
NSString *myDateString = [myFormatter stringFromDate:localDate]; 
NSLog(@"%@",myDateString); //You will get a string, 10/31/2016 
+0

答えをありがとう。しかし、2行目の日付書式を厳密にコーディングしています。ユーザは、OS Xの「システム環境設定」で任意の日付形式を設定できます。 –

関連する問題