【问题标题】:NSDateFormatter wrong output with string from stringWithDate:NSDateFormatter 使用 stringWithDate 的字符串输出错误:
【发布时间】:2010-01-06 17:27:46
【问题描述】:

为什么 NSDateFormatter 会误解他自己创建的 dateString?

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

 [dateFormatter setDateFormat:@"YYYY-MM-DD'T'HH:mm:ss.SSSZZZZ"];

 NSDate *now = [NSDate date];

 NSLog(@"Now: %@, Date: %@", [dateFormatter dateFromString:[dateFormatter stringFromDate:now]], now);

产生以下结果: 现在:1970-01-06 18:07:05 +0100,日期:2010-01-06 18:07:05 +0100

我知道您应该使用 yyyy 和 dd(yyyy 和 dd 不会发生这种情况),但这不是重点。我希望在解析格式化程序为我创建的字符串时收到相同的日期。

【问题讨论】:

    标签: nsdateformatter


    【解决方案1】:

    这会起作用

    [dateFormatter setDateFormat:@"y-MM-DD'T'HH:mm:ss.SSSZZZZ"];
    

    看这里,http://www.crystalminds.nl/?p=4 了解有关不同标志的更多信息。

    使用 YYYY 时,格式化程序似乎无法识别任何年份,因为

    [dateFormatter setDateFormat:@"YYYY-MM-DD'T'HH:mm:ss.SSSZZZZ"];
    // is equal to
    [dateFormatter setDateFormat:@"MM-DD'T'HH:mm:ss.SSSZZZZ"];
    

    【讨论】:

    • 感谢您的回答(我知道回复晚了)我想我可以给您一些代表,但很抱歉。也许以后......
    猜你喜欢
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 2017-02-26
    相关资源
    最近更新 更多