我正在尝试使用以下代码。
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时间。
我做错了什么?
答案 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;