转换日期格式返回错误日期xcode

问题描述:

我想将日期从23 May, 2017转换为23-05-2017转换日期格式返回错误日期xcode

我试着用下面的代码,但它返回25-12-2016

NSDateFormatter *oldFormatter = [NSDateFormatter new]; 
[oldFormatter setDateFormat:@"dd MMM, YYYY"]; 
NSDate *oldDate = [oldFormatter dateFromString:dateStr]; 

NSDateFormatter *newFormatter = [NSDateFormatter new]; 
[newFormatter setDateFormat:@"dd-MM-YYYY"]; 

我正在使用Xcode 8.2.1。 谢谢。

+4

“YYYY”,而不是 “YYYY”。看到这个:http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns找到原因。 – Larme

你需要做以下修改:

YYYY - > YYYY

更新的代码:

NSString *strInputDateString = @"23 May, 2017"; 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"dd MMM, yyyy"]; 

    //Set new dateFormate 
// 23-05-2017 
    NSDate *date1 = [dateFormat dateFromString:strInputDateString]; 
    [dateFormat setDateFormat:@"dd-MM-yyyy"]; 

    NSString *strOutputDateString = [dateFormat stringFromDate:date1]; 
    NSLog(@"%@",strInputDateString); 
    NSLog(@"%@",strOutputDateString);