NSDateFormatter
文字列から日付をエンコードおよびデコードするために、変更されていない同じものを使用しています。日付を文字列にエンコードするのはうまくいきますが、それを取り戻すのは奇妙なことにうまくいきません。ほとんどの日付は数か月ずれているため、タイムゾーンの問題ではありません. 私は持っている:
NSDateFormatter *_calibrationDateFormat = [[NSDateFormatter alloc] init];
[_calibrationDateFormat setDateFormat:@"EEEE MMM d, YYYY"];
NSString *text = @"Thursday Dec 6, 2018";
NSLog(@"%@\n%@", text, [_calibrationDateFormat dateFromString:text]);
出力:
Monday Aug 12, 2013
2012-12-31 05:00:00 +0000
他の日付でさらにいくつかの試行:
Friday Apr 12, 2013
2013-01-04 05:00:00 +0000
Saturday Oct 26, 2013
2013-01-05 05:00:00 +0000
Thursday Sep 10, 2015
2015-01-01 05:00:00 +0000
Thursday Jan 5, 2017
2017-01-05 05:00:00 +0000
それらの日付をデコードするロジックについては、本当に途方に暮れています。曜日を削除したり、3 文字の省略形の代わりに完全な月名を使用したりするなど、さまざまな形式も試しましたが、結果は同様に混乱を招きます。私のテストでは、UIDatePicker を使用し、結果の日付を同じ日付フォーマッタでエンコードしていたことに注意してください。そのような人間が読める日付文字列から日付オブジェクトを取得する信頼できる方法はありますか?