1

NSDateFormatter現在の日付を文字列に変換するために使用しています(形式: February 16, 2013)。NSDateこの文字列をオブジェクトに戻すにはどうすればよいですか?

NSString *dateString = [NSDateFormatter localizedStringFromDate:[NSDate date] dateStyle:NSDateFormatterLongStyle timeStyle:NSDateFormatterNoStyle];

問題は、月が書き出されていること ( Februaryvs. 02) であり、他の質問はNSDateFormatterのような形式で使用することのみを説明してMM-dd-yyyyいるように見えますが、ここでは可能ではないと思います。この日付を手動で解析し、に変換Februaryして02、そこから移動する必要がありますか?

4

3 に答える 3

4

同じ NSDateFormatter クラスの dateFromString を使用して、後方変換を実行できます。これを機能させるには、dateStyle を定義する必要があるため、パーサーはテキスト文字列をどのように解析する必要があるかを認識します。あなたが提供した日付スタイルの場合、以下のコードが機能します:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterLongStyle];
NSDate *date = [dateFormatter dateFromString:@"February 16, 2013"];

NSLog(@"%@", date);
于 2013-02-17T02:52:11.920 に答える
1

ローカライズされた日付形式を使用できるようにしたい場合は、テンプレートを使用する必要があります

 NSString *dateString = [NSDateFormatter localizedStringFromDate:[NSDate date]
                                                       dateStyle:NSDateFormatterLongStyle
                                                       timeStyle:NSDateFormatterNoStyle];

NSLog(@"%@", dateString);

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];    
[dateFormatter setDateFormat:[NSDateFormatter dateFormatFromTemplate:@"MMMdY"
                                                             options:0
                                                              locale:[NSLocale currentLocale]]];

NSLog(@"%@", [dateFormatter dateFromString:dateString]);
于 2013-02-17T03:00:46.153 に答える
1

解析したい固定フォーマットがあるため、日付フォーマッタを のロケールでセットアップする必要がありますen_US_POSIX。次に、日付形式を に設定する必要がありますMMMM dd, yyyy。これにより、完全な月名、月日、カンマ、4 桁の年を含む日付文字列が取り除かれます。

于 2013-02-17T03:42:14.553 に答える