我有以下日期和时间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);
答案 0 :(得分:0)
我想这是一个时区问题。将格式化程序时区设置为GMT:
dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
答案 1 :(得分:0)
我假设变量date
通过[NSDate date]
初始化。
也许在下面的主题中相当广泛的答案也有帮助。
答案 2 :(得分:0)
一遍又一遍地询问(但很难通过搜索找到)。
当您记录NSDate
对象时,您将始终以UTC格式获取日期。这就是当前description
NSDate
方法的实现方式。
只要您看到的差异可以根据您当地的时区相对于UTC来计算,那么您看到的是正确的和预期的行为。
BTW - 没有理由将日期格式化程序的时区设置为“系统”时区。默认情况下已经完成。对于语言环境也是如此。如果您想要与当前值不同的内容,请仅设置时区或区域设置。