在我的代码中,我从服务器获取一个字符串,值为" 06-27-2014",然后我想转换为其他日期格式,但我得到的最终结果是非常不同的。这是我正在使用的代码。
NSString* dateVal = @"06-27-2014";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"mm-dd-yyyy"];
NSTimeZone *gmtZone = [NSTimeZone systemTimeZone];
[dateFormatter setTimeZone:gmtZone];
NSDate* aDate = [dateFormatter dateFromString:**dateVal**];
I am getting the aDate as **2014-01-26 18:36:00 +0000** here the month is completely changing to first month from 6th.
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateStyle:NSDateFormatterShortStyle];
NSDate *theDateSelected =aDate;
NSString *theDate = [dateFormat stringFromDate:theDateSelected];
我得到的最后日期是 27/01/14 ,这完全不同任何人都可以建议正确的日期格式。
答案 0 :(得分:5)
您的日期格式错误,月份应为MM
。 mm
用于分钟。
[dateFormatter setDateFormat:@"mm-dd-yyyy"];
应该是
[dateFormatter setDateFormat:@"MM-dd-yyyy"];
答案 1 :(得分:2)
在这里,您的日期格式化程序值似乎是错误的。
NSString* dateVal = @"06-27-2014";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM-dd-yyyy"];
NSTimeZone *gmtZone = [NSTimeZone systemTimeZone];
[dateFormatter setTimeZone:gmtZone];
NSDate* aDate = [dateFormatter dateFromString:dateVal];// Now here you will get date like "06-27-2014", and mm is for minutes, you should use MM for month.
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateStyle:NSDateFormatterShortStyle];
NSDate *theDateSelected =aDate;
NSString *theDate = [dateFormat stringFromDate:theDateSelected];
答案 2 :(得分:0)
您的格式字符串错误。
[dateFormatter setDateFormat:@"MM-dd-yyyy"];
m是分钟, M是一个月。
始终要求date format patterns参考; - )