将NSString转换为NSDate时,月份会发生变化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将NSString转换为NSDate时,月份会发生变化相关的知识,希望对你有一定的参考价值。

这是我的代码:

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,日期和时间是: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 这里时间和月份都改变了。

那么我的代码出了什么问题?

提前致谢。

答案

日期格式错误,只是一个错字:

  • mm是分钟
  • MM是月 [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

以上是关于将NSString转换为NSDate时,月份会发生变化的主要内容,如果未能解决你的问题,请参考以下文章

将NSDate转换为NSString

将 NSDate 转换为 NSString

将NSString转换为NSDate(并再次返回)

将NSDate转换为NSString

如何将长整数时间转换为 NSString 或 NSDate 以显示时间?

使用字符串格式“Sun, 08 Jan 2012 13:57:38 +0000”将 NSString 转换为 NSDate