2011-04-19 43 views
0

我得到了NSDateFormatter返回的格式错误的日期字符串。这里是我的代码:NSDateFormatter - 没有得到正确的格式化字符串

NSDateFormatter *aDateFormatter = [[NSDateFormatter alloc] init]; 
[aDateFormatter setDateFormat:@"dd-MM-yy HH:mm:ss"]; 
NSString *aFormattedElapsedTime = [aDateFormatter stringFromDate:refDate]; 

这里, refDate(NSDate的对象)= 1970-01-01 0点36分22秒+0000

输出我得到的是 “16小时:36米:22S”,而不是“00h:36m:22s”。

我在这里做错了什么?

+0

refDate传递给stringFromDate,所以我认为它是一个字符串,你能给我们确切的字符串,你正在使用? – 2011-04-19 21:26:01

+0

你是什么时区? – 2011-04-19 21:27:54

+0

你在什么时区,你可能需要指定格式化程序的时区,看起来像是使用-8时区,所以我猜你是住在西海岸。 – Joe 2011-04-19 21:30:15

回答

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

NSDateFormatter将默认为系统上的当前时区,除非您将其设置为setTimeZone

[aDateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 

NSDateFormatter to NSString?

0

除了看看,生活在太平洋时间,而不是真的。在那里添加你的时区偏移量,你就会明白为什么你会得到这个值:NSDateFormatter正在按照当地时间格式化日期,而不是UTC

相关问题