2011-10-06 110 views
0

我有这段时间以毫秒为单位,我在XML Feed中收到,而且我需要以任何适当的形式显示任何人都可以理解的时间。将时间从毫秒转换为人类可读的日期

任何人都可以指导我如何实现这样的行为?

谢谢。

注:我得到的毫秒时间是在UNIX时间。

回答

6

使用NSDatedateWithTimeIntervalSince1970:方法是将您的时间戳记除以1000.0

NSDate* date = [NSDate dateWithTimeIntervalSince1970:timestamp/1000.0]; 

有关格式化的更多详细信息,请参阅this question

+0

我为每一个日期我试着用这些方法转换''1月16日1970'。但是,当我使用在线转换工具时,我得到了真正的结果.... – astazed

+0

只是删除了'/ 1000.0'部分。它工作得很好! – astazed

+0

呵呵。你没有时间毫秒吗? – zneak

1

与间隔创建一个NSDate对象,然后使用一个NSDateFormatter对象来把它转换成显示值,就像这样:

- (void)displayDate:(double)unixMilliseconds { 
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:unixMilliseconds/1000.]; 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateStyle:NSDateFormatterFullStyle]; 
    [dateFormatter setTimeStyle:NSDateFormatterLongStyle]; 
    [dateFormatter setLocale:[NSLocale currentLocale]]; 
    NSLog("The date is %@", [dateFormatter stringFromDate:date]); 
    [dateFormatter release]; 
} 

很显然,你应该一次分配的格式,如果你这样做保持它周围很多。

+0

对不起,但zneak是第一个回答这个问题.... – astazed

+0

这很酷,我没有注意到他的答案中的链接如何格式化,所以我试着给出一个更完整的答案。 –