NSDateFormatter 使用 dateFromString 返回 nil

NSDateFormatter returning nil with dateFromString

我正在使用以下代码使用 NSDateFormatter 将 yyyy-MM-dd 更改为 M-dd-yyyy,但 NSLog 返回值 nil。请帮忙。提前致谢。

NSString *trimmedDOB=@"1992-11-15";
NSDateFormatter *format = [[NSDateFormatter alloc] init];

[format setDateFormat:@"MM-dd-yyyy"];
NSDate *DateOfBirth=[format dateFromString:trimmedDOB];

NSLog(@"DATE IS %@",DateOfBirth);

像下面这样更改您的代码:

NSString *trimmedDOB=@"1992-11-15";
NSDateFormatter *inFormat = [[NSDateFormatter alloc] init];
[inFormat setDateFormat:@"yyyy-MM-dd"];
NSDate *DateOfBirth=[inFormat dateFromString:trimmedDOB];
NSDateFormatter *outFormat = [[NSDateFormatter alloc] init];
[outFormat setDateFormat:@"MM-dd-yyyy"];
NSLog(@"DATE IS %@", [outFormat stringFromDate:DateOfBirth]);
NSString *trimmedDOB=@"1992-11-15";
NSDateFormatter *format = [[NSDateFormatter alloc] init];

//Set your input format
[format setDateFormat:@"yyyy-MM-dd"];

//Parse date from input format
NSDate *dateOfBirth = [format dateFromString:trimmedDOB];

//Set your output format
[format setDateFormat:@"MM-dd-yyyy"];

//Output date in output format
NSLog(@"DATE IS %@",[format stringFromDate:dateOfBirth]);
NSString *trimmedDOB=@"1992-11-15";
NSDateFormatter *dateformatterIn = [[NSDateFormatter alloc] init];
[dateformatterIn setDateFormat:@"yyyy-MM-dd"];
NSDate *DateOfBirth=[dateformatterIn dateFromString:trimmedDOB];
NSDateFormatter *dateformatterOut = [[NSDateFormatter alloc] init];
[dateformatterOut setDateFormat:@"MM-dd-yyyy"];

每种日期格式对应一种日期格式。 由于您有 2 种日期格式(一种是您要转换的日期字符串,另一种是您要转换成的日期字符串),因此您需要两个日期格式化程序。

所以要从一个日期字符串转换为另一个日期字符串:

  1. 创建'from' 日期格式化程序(格式:yyyy-MM-dd)
  2. 将您的来源 'date string' 转换为 'NSDate object'
  3. 创建'to' 日期格式化程序(格式:MM-dd-yyyy)
  4. 将您在第 2 步中创建的 'NSDate object' 转换为最终的 'date string'