【问题标题】:Why is NSDateFormatter returning nil for Feb 29为什么 NSDateFormatter 在 2 月 29 日返回 nil
【发布时间】:2012-03-01 07:08:05
【问题描述】:

当我尝试使用格式化程序字符串解析字符串 @"02291120" 时,NSDateFormatter 返回 nil

@"MMddHHmm"

但是,2 月 29 日是有效日期(闰年)。如何确保解析器返回的结果不为零?

【问题讨论】:

    标签: iphone objective-c nsdateformatter


    【解决方案1】:

    您没有告诉日期格式化程序使用哪一年。

    如果您的日期格式中不包含年份,则默认使用 1970。如果您希望它默认使用不同的年份,则必须为日期格式化程序提供默认日期。例如,如果您希望它使用当前年份,您可以将默认日期设置为当前日期:

    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    df.dateFormat = @"MMddHHmm";
    df.defaultDate = [NSDate date];
    NSDate *date = [df dateFromString:@"02291120"];
    

    【讨论】:

      【解决方案2】:

      如果你想得到“0229”的日期,你必须像这样添加年份格式:

      @"YYYYMMddHHmm" @"201202291120"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-07
        • 2017-04-24
        • 2020-01-03
        • 2013-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多