我收到NSDateFormatter返回的错误的格式化日期字符串。这是我的代码:
NSDateFormatter *aDateFormatter = [[NSDateFormatter alloc] init];
[aDateFormatter setDateFormat:@"dd-MM-yy HH:mm:ss"];
NSString *aFormattedElapsedTime = [aDateFormatter stringFromDate:refDate];
下面, refDate(NSDate对象)= 1970-01-01 00:36:22 +0000
我得到的输出是“16h:36m:22s”而不是“00h:36m:22s”。
我在这里做错了吗?
答案 0 :(得分:2)
NSDateFormatter将默认为系统上的当前时区,除非您使用setTimeZone
进行设置。
[aDateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
答案 1 :(得分:1)
尝试设置时区。 (见上面的评论)
NSDateFormatter *aDateFormatter = [[NSDateFormatter alloc] init];
[aDateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]
[aDateFormatter setDateFormat:@"dd-MM-yy HH:mm:ss"];
NSString *aFormattedElapsedTime = [aDateFormatter stringFromDate:refDate];
答案 2 :(得分:0)
除了生活在太平洋时间,不是真的。在那里添加您的时区偏移量,您就会明白为什么要获得该值:NSDateFormatter
将日期格式设置为在当地时间解释,而不是UTC
。