0

我有以下日期和时间 2013-04-25 10:42:44 +0000。当我将上述日期转换为字符串时,我得到的输出为 2013-04-25 16:12:44。以下是我用来将日期转换为字符串的代码

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    dateFormatter.timeZone = [NSTimeZone systemTimeZone];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString *dateStr= [dateFormatter    stringFromDate:date]];
    NSLog(@"dateStr--%@",dateStr);
4

3 回答 3

0

我想这是一个时区问题。将格式化程序时区设置为 GMT:

    dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
于 2013-05-02T14:51:56.487 回答
0

我假设变量date通过[NSDate date]. 也许以下主题中相当广泛的答案在这里也很有帮助。

[NSDate date] 是否返回本地日期和时间?

于 2013-05-02T14:59:48.433 回答
0

这被一遍又一遍地询问(但很难通过搜索找到)。

当您记录一个NSDate对象时,您将始终获得 UTC 格式的日期。这就是当前实现description方法的方式。NSDate

只要您看到的差异可以根据您相对于 UTC 的本地时区来计算,那么您所看到的就是正确和预期的行为。

顺便说一句 - 没有理由将日期格式化程序的时区设置为“系统”时区。这已经默认完成。语言环境也一样。如果您想要与当前值不同的内容,请仅设置时区或语言环境。

于 2013-05-02T15:13:14.890 回答