Что такое точная разница между "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
Как здесь, результат для date
и datee
отличается, что я понял, но почему результат даты 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
, проверяю дату 2 из NSLog, странный результат, почему?