日期格式化程序在 iOS 中给出错误的日期?

date formatter giving wrong dates in iOS?

我有一个应用程序,我在其中使用日期格式化程序来处理字符串,例如 “6/30/2016 1:00:00 PM”像这样 30-Jun-2016 1:00。我正在这样做

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"mm/dd/yyyy hh:mm:ss a"];
NSDate *date = [dateFormat dateFromString:dateStr];
[dateFormat setDateFormat:@"dd-MMM-yyyy hh:mm"];
NSString *stringDate = [dateFormat stringFromDate:date];
return stringDate;

但它并没有给我错误的日期,例如 2016 年 1 月 30 日 1:00。

谁能指出我哪里出错了?

你给的日期格式错误你需要大写月 MM 不小,小 mm 是分钟。像这样更改您的代码。

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
NSDate *date = [dateFormat dateFromString:dateStr];
[dateFormat setDateFormat:@"dd-MMM-yyyy hh:mm"];
NSString *stringDate = [dateFormat stringFromDate:date];
return stringDate;

希望对您有所帮助。