85

「YYYY」と「yyyy」の正確な違いは何ですか。私はこのリンクを読みました、それはそれを述べています

よくある間違いは、YYYY を使用することです。yyyy は暦年を指定し、YYYY は ISO 年週カレンダーで使用される (「年の週」の) 年を指定します。ほとんどの場合、yyyy と YYYY は同じ数値になりますが、異なる場合もあります。通常、暦年を使用する必要があります。

しかし、私が使用しようとすると

NSString *stringDate = @"Feb 28, 2013 05:30pm";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MMM dd, yyyy hh:mma"];
NSDate *date=[dateFormatter dateFromString:stringDate];
NSLog(@"Date 1 : %@",date); //2013-02-28 12:00:00 +0000

NSString *stringDatee = @"Feb 28, 2013 05:30pm";
NSDateFormatter *dateFormatterr = [[NSDateFormatter alloc] init];
[dateFormatterr setDateFormat:@"MMM dd, YYYY hh:mma"];
NSDate *datee=[dateFormatterr dateFromString:stringDatee];
NSLog(@"Date 2 : %@",datee); //2013-01-05 12:00:00 +0000

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMM dd, YYYY hh:mma"];
NSString *dateString = [dateFormat stringFromDate:datee];
NSLog(@"date 3 : %@", dateString); //Jan 05, 2013 05:30PM

ここのように結果datedatee違う、と分かったのですが、2日目と3日目の結果が違うのはなぜですか?文字列から日付を作成し、同じものを再び文字列に逆にしていますが、出力の不一致はありますか?

誰かが同じ理由を知っていますか?. 年の週を指定しますが、それでも同じ結果が得られるはずです。

ありがとう..

編集 :-

私がコーディングする場合

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMM dd, YYYY hh:mma"];
NSString *dateString = [dateFormatterr stringFromDate:[NSDate date]];
NSLog(@"date: %@", dateString); //Feb 28, 2013 04:37PM

適切な結果が得られたが、現在までの文字列として渡したものと同じ場合2013-01-05 12:00:00 +0000は、NSLog の日付 2 を確認してください。奇妙な結果です。なぜですか?

4

4 に答える 4

76

また、正しい形式を使用して日付形式文字列を使用する場合も重要です。

@"YYYY" は週ベースの暦年です。

@"yyyy" は平年です。

ブログ全体に目を通すことができます。見てみるのは良いことです

ここに画像の説明を入力

https://web.archive.org/web/20150423093107/http://realmacsoftware.com/blog/working-with-date-and-time

http://realmacsoftware.com/blog/working-with-date-and-time (リンク切れ)

于 2013-02-28T10:52:18.343 に答える
32

A common mistake is to use YYYY. yyyy specifies the calendar year whereas YYYY specifies the year (of “Week of Year”), used in the ISO year-week calendar. In most cases, yyyy and YYYY yield the same number, however they may be different. Typically you should use the calendar year.

from Apple Docs

于 2013-02-28T10:54:19.837 に答える