将时间从毫秒转换为人类可读日期

时间:2011-10-06 20:58:25

标签: iphone objective-c time nsdate nsdateformatter

我在XML Feed中收到的时间是毫秒,我需要以任何适当的形式显示此时间,任何人都可以理解。

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

谢谢。

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

2 个答案:

答案 0 :(得分:6)

使用NSDate的{​​{1}}方法,将时间戳除以dateWithTimeIntervalSince1970:

1000.0

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

答案 1 :(得分: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];
}

显然你应该分配一次格式化程序并保留它,如果你这么做的话。