将毫秒转换为NSDate

11

我有一个“1273636800000”值,想将其转换为格式为“Wed Mar 03 2010 00:00:00 GMT-0500 (EST)”。

我需要将这些毫秒数转换为NSDate格式。

我尝试了以下代码:

NSDate *tr = [NSDate dateWithTimeIntervalSince1970:1273636800000];

以及

NSDate *tr = [NSDate dateWithTimeIntervalSinceReferenceDate:1273636800000];

还有

NSDate *tr = [NSDate dateWithTimeIntervalSinceNow:1273636800000];

但我无法使其工作,是否有人遇到过类似的问题并找到了解决方案?


dateWithTimeIntervalSince1970:是什么功能?你考虑了时区吗? - Marcelo Cantos
我只需要日期,不关心时间。 - vivianaranha
3个回答

31

这些函数(dateWithTimeIntervalSince1970、dateWithTimeIntervalSinceReferenceDate、dateWithTimeIntervalSinceNow)接受以秒为单位的参数。

NSDate *date = [NSDate dateWithTimeIntervalSince1970:(ms / 1000.0)];

你应该传递 1273636800.000

NSDate *date = [NSDate dateWithTimeIntervalSince1970:(1273636800 / 1000.0)];

我花了一周的时间寻找这个,如果你认为3小时很傻,那我应该怎么称呼自己?XD - SAFAD

5

将数值除以1000,即可得到毫秒转换为秒所需的数值。


4

一行简单的Swift 2函数:

func dateFromMilliseconds(ms: NSNumber) -> NSDate {
    return NSDate(timeIntervalSince1970:Double(ms) / 1000.0)
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接