【问题标题】:NSDateFormatter transition to NSString error [duplicate]NSDateFormatter 转换为 NSString 错误 [重复]
【发布时间】:2015-12-28 10:37:43
【问题描述】:

这里是代码

NSDateFormatter* formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"YYYY-MM-dd"];
NSString * dateNow = [formatter stringFromDate:[NSDate date]];

调试器显示

为什么年份是 2016 年?

【问题讨论】:

  • 使用 [formatter setDateFormat:@"yyyy-MM-dd"];

标签: ios objective-c nsdate nsdateformatter foundation


【解决方案1】:

在您的NSDateFormatter 中使用yyyy 而不是YYYY

[formatter setDateFormat:@"yyyy-MM-dd"];
---------------------------^^^^

为什么年份是2016?

原因是:

“YYYY”是基于周的日历年。

“yyyy”是一个普通的日历年。

【讨论】:

    【解决方案2】:

    如下更改 setdateformatter 行,

    [formatter setDateFormat:@"yyyy-MM-dd"];
    

    【讨论】:

      【解决方案3】:

      2016 年是因为本周(2015 年 12 月 27 日)至(2016 年 1 月 2 日)是 2016 年的第一周,基于 YYYY 格式指定的每周日历年。参考:https://en.wikipedia.org/wiki/ISO_week_date

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-08
        • 2017-11-10
        • 1970-01-01
        相关资源
        最近更新 更多