Ios NSDateFormatter的日期格式转换问题

Ios NSDateFormatter的日期格式转换问题,ios,date,nsdateformatter,Ios,Date,Nsdateformatter,我正在执行以下代码: NSString *stringToFormat = ticket.date; NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"dd MMMM yyyy"]; df.locale = [[NSLocale alloc] initWithLocaleIdentifier: @"ro_RO"]; [df setDateFormat:@"dd.MM.yyyy"]; NSStrin

我正在执行以下代码:

NSString *stringToFormat = ticket.date;
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"dd MMMM yyyy"];

df.locale = [[NSLocale alloc] initWithLocaleIdentifier: @"ro_RO"];
[df setDateFormat:@"dd.MM.yyyy"];
NSString *final = [df stringFromDate:[df dateFromString:stringToFormat]];
self.dateLabel.text = final;

问题是最终结果是零?为什么?

您在ticket.date中收到的格式与代码中给出的格式不同。
“dd-MMMM-yyyy”请将此格式用于您的机票dd.MMMM.yyyy hh:mm

 NSString *stringToFormat = ticket.date;
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"dd.MMMM.yyyy hh:mm"];//16.Octombrie.2015 10:02
df.locale = [[NSLocale alloc] initWithLocaleIdentifier: @"ro_RO"];

NSDateFormatter *localDF = [NSDateFormatter new];
localDF.locale = [[NSLocale alloc] initWithLocaleIdentifier: @"ro_RO"];
[localDF setDateFormat:@"dd.MM.yyyy"];

NSString *final = [localDF stringFromDate:[df dateFromString:stringToFormat]];

代码中有两个问题:

  • 您正在使用具有两种不同日期格式的相同日期格式化程序实例
  • 您设置了错误的日期格式以适合输入日期
  • 下面是更正的代码:

    NSString *stringToFormat = @"16.Octombrie.2015 10:02";
    
    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    df.locale = [[NSLocale alloc] initWithLocaleIdentifier: @"ro_RO"];
    [df setDateFormat:@"dd.MMMM.yyyy hh:mm"];
    
    NSDateFormatter *df2 = [[NSDateFormatter alloc] init];
    df2.locale = [[NSLocale alloc] initWithLocaleIdentifier: @"ro_RO"];
    [df2 setDateFormat:@"dd.MM.yyyy"];
    
    NSString *final = [df2 stringFromDate:[df dateFromString:stringToFormat]];
    

    您还必须将locale设置为first date formatter,以便格式化程序将Octombrie识别为有效月份

    ticket.date包含什么?此格式的日期2015年10月16日10:02@Spartanu13现在请看我编辑的答案。“这对我来说很好。”斯巴达诺13你得到了什么?还是零。但问题是@psci所说的。现在修好了