質問

同じ形式の別のNSDateFormatterを使用して、NSDateFormatterによって生成された文字列を解析しようとしています。

前の文を意味のあるものにするのではなく、次のコードを使用します。

NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"MMM dd, YYYY HH:mm"];

NSDate *now = [[NSDate alloc] init];

NSString *dateString = [format stringFromDate:now];

NSDateFormatter *inFormat = [[NSDateFormatter alloc] init];
[inFormat setDateFormat:@"MMM dd, YYYY HH:mm"];

NSDate *parsed = [inFormat dateFromString:dateString];

NSLog(@"\n"
      "now:        |%@| \n"
      "dateString: |%@| \n"
      "parsed:     |%@|", now, dateString, parsed);

このコードを実行すると、 parsed には now と同じ日付が含まれると予想されますが、代わりに次の出力が表示されます。

now:        |2009-05-04 18:23:35 -0400| 
dateString: |May 04, 2009 18:23| 
parsed:     |2008-12-21 18:23:00 -0500|

これが起こっている理由は誰にもありますか?

役に立ちましたか?

解決

あなたの問題は" YYYY"有効なICU日付フォーマットオプションではありません。希望する" yyyy"。

大文字の「Y」は、「年間の週」とともに使用する場合にのみ有効です。オプション(つまり、「Y」の「週」「w」)」

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top