OGeek|极客世界-中国程序员成长平台

标题: iOS NSDateformatter 问题 - dateFromString 无法按预期正常工作 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 09:09
标题: iOS NSDateformatter 问题 - dateFromString 无法按预期正常工作

以下代码段将给出意外的输出:

片段:

    NSString* testDateStr = [[NSString alloc] initWithString"2010-04-04 19:11:11"];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat"yyyy-MM-dd HH:mm:ss"];
    NSLog(@"'%@'", testDateStr);
    NSLog(@"'%@'", [dateFormatter dateFromString:testDateStr]);

输出:

'2010-04-04 19:11:11'

'2010-04-04 09:11:11 +0000'

请注意生成日期的时间小时是错误的。我在这里做错了什么吗?



Best Answer-推荐答案


NSDateFormatter 默认为本地时区。当您打印 NSDate 对象的 description 时,它会以 GMT 打印(注意末尾的 +0000)。此代码完全按预期工作。 (您本地时区的 19:11:11 与 GMT 的 09:11:11 相同。)

您始终可以通过调用 setTimeZone: 来覆盖 NSDateFormatter 的时区。

关于iOS NSDateformatter 问题 - dateFromString 无法按预期正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7539466/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4