【问题标题】:stringFromDate returning the wrong yearstringFromDate 返回错误的年份
【发布时间】:2011-02-19 04:48:50
【问题描述】:
#define stdDateFormat @"YYYYMMdd'T'hh:mm:ssZ"
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
[dateFormat setDateFormat:stdDateFormat];
NSString *TimeOfSync = [dateFormat stringFromDate:syncDate];
NSLog(@"date format: %@",stdDateFormat);
NSLog(@"syncDate: %@",syncDate);
NSLog(@"TimeOfSync: %@",TimeOfSync);

记录输出:

date format: YYYYMMdd'T'hh:mm:ssZ
syncDate: 2009-01-03 19:00:00 +0000
TimeOfSync: 20080103T11:00:00-0800

有人可以帮忙吗?我唯一能看到的是输入日期字符串中时区之前的额外空间。谢谢。

【问题讨论】:

    标签: nsdate


    【解决方案1】:

    使用小写的 yyyy 代替 YYYY。

    大写 Y 表示日期所在的开始年份(2009 年 1 月 3 日是从 2008 年开始的一周)。

    Unicode Date Format Patterns

    【讨论】:

    • 非常感谢...这让我发疯了!如此简单的解决方案一直让我发疯。如果我能多次投票给你,我会的!
    • 赞成,谢谢!但请注意,它看起来(根据这刚刚发生在我身上的方式,两周前的日期显示为“2016 年 12 月 30 日”),根据 ISO 年份,Y 表示“一周被认为是这一年的一部分”-周历。所以“YYYY”不一定表示那一周开始的年份。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多