4

我有一个小问题,当我从 Instragm 得到答案时,我得到了这个日期格式:

            "created_time" = 1361964707;

这到底是什么意思?特别是如何使用 NSdataFormatter 格式化它?

我正在寻找一种方法来格式化这样的日期。

"created_time": "Wed Dec 01 17:08:03 +0000 2010"

谢谢

4

2 回答 2

5

这是一个 unix 时间戳(http://en.wikipedia.org/wiki/Unix_time)。

完成后将其转换为 NSDate [NSDate dateWithTimeIntervalSince1970:]; ,您可以在其上使用 NSDateFormatter。

于 2013-10-16T20:58:40.700 回答
4

计算机通常将日期计算为自某个任意时间点(“纪元日期”)以来的秒数。您可以使用浮点数来实现亚秒级精度。

UNIX 纪元日期是 UTC 时间 1970 年 1 月的午夜。(又名格林威治标准时间。)

Mac OS 和 iOS 的纪元日期是 2001 年 1 月 1 日午夜。

Unix Epoch 日期是 Internet 上相当普遍的日期交换标准。我敢打赌,这是一个 Unix 纪元日期。

NSDate 具有在这些“秒数”日期和 NSDate 对象之间进行转换的方法:

+[NSDate dateWithTimeIntervalSince1970:]      //Unix Epoch to NSDate
+[NSDate dateWithTimeIntervalSinceReferenceDate:] //Mac * iOS Epoch to NSDate

-[NSDate timeIntervalSince1970]  //Unix epoch value for an NSDate
-[NSDate timeIntervalSinceReferenceDate]  //Mac & iOS epoch value for an NSDate

因此,您应该能够获取该日期并使用 timeIntervalSince1970 将其转换为 NSDate。请记住,您返回的日期将是格林威治标准时间,您需要将其转换为您当地的时区。

此代码将在 UTC 中将该日期显示为 NSDate:

  NSTimeInterval interval = 1361964707.0;
  NSDate *aDate = [NSDate dateWithTimeIntervalSince1970: interval];
  NSLog(@"Date = %@", aDate);

我得到的结果

日期 = 2013-02-27 11:31:47 +0000

鉴于那是 2013 年的日期,我敢打赌它是正确的。

于 2013-10-16T21:04:58.793 回答