What is exact difference between 'YYYY' and 'yyyy'. I read in this link, it states that
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.
But when I try to use
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
As here, result to date
and datee
different, which I understood, but why result of date 2 and date 3 are different? As I am creating date from string and reversing same to string again, but output mismatches?
Has anybody knows reason about same?. Though it specifies week of year, still I should get result same.
Thanks..
EDIT :-
If I code
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
If results me proper result, but same which I pass as string to date I get 2013-01-05 12:00:00 +0000
, check date 2 of NSLog, Strange result, why?
mm represents minutes, so when you use mm , it will print minutes instead of month. While MM represents months.
Also when using a date format string using the correct format is important.
@"YYYY" is week-based calendar year.
@"yyyy" is ordinary calendar year.
You can go through the whole blog, its a good to give it a look
https://web.archive.org/web/20150423093107/http://realmacsoftware.com/blog/working-with-date-and-time
http://realmacsoftware.com/blog/working-with-date-and-time (dead link)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With