NSDate转换的纪元时间问题

时间:2014-08-07 16:11:32

标签: ios nsdate

我正在尝试使用以下代码。

long mytime = 1230840000000;
NSDate *eDate = [[NSDate alloc] initWithTimeIntervalSince1970:utcEpoc];

我得到的结果是:

40973-10-07 08:00:00 +0000

当我尝试使用online converter时,我得到了以下日期:

Thu, 01 Jan 2009 20:00:00 GMT

我的印象是NSData始终存储在GMT时间。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

我的时间约为1230亿。一年中大约有3000万秒,自1970年以来大约有1230万秒。在MacOS X和iOS上,时间间隔始终是计算秒数的双精度数。似乎你的时间是毫秒,所以除以1000.0。

为了更清楚,我将变量名称更改为&#34; long timeInMilliseconds&#34;,然后每个有经验的MacOS X / iOS开发人员都会清楚为什么将它除以1000. < / p>

答案 1 :(得分:0)

答案非常简单:时间间隔以秒为单位,而不是以毫秒为单位(如Java或C ++)。您需要做的就是删除3个零。

您需要做的就是:

NSTimeInterval utcEpoc = myTime / 1000.0;