将NSString转换为NSDate时的月份更改

时间:2019-03-08 09:29:50

标签: ios objective-c nsstring nsdate nsdateformatter

这是我的代码:

NSString *date = [NSString stringWithFormat:@"%@",[[NSUserDefaults standardUserDefaults] stringForKey:@"start_date"]];
NSString *time = [NSString stringWithFormat:@"%@",[[NSUserDefaults standardUserDefaults] stringForKey:@"start_time"]];  
NSString *dateAndTime = [NSString stringWithFormat:@"%@ %@",date,time];  

这里我的日期是:2019-03-14 ,而我的时间是:18:40:00 dateAndTime是:2019-03-14 18 :40:00

现在,当我将NSString转换为NSDate时,它会给出不同的月份。
这是我的儿童车代码:

// convert to date
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    //dateFormat.dateFormat = @"dd MMM YYYY HH:mm:ss";
    [dateFormat setDateFormat:@"yyyy-mm-dd HH:mm:ss"];
    NSDate *dateTime = [dateFormat dateFromString:dateAndTime];
    NSLog(@"dateTime : %@",dateTime);  

现在o / p为 2019-01-14 13:10:00 +0000
在这里,时间和月份都改变了。

那我的代码怎么了?

先谢谢了。

1 个答案:

答案 0 :(得分:3)

日期格式错误,只是拼写错误:

  • mm是分钟
  • MM是月份

    [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];