【问题标题】:How to format Instagram date in Objective-C如何在 Objective-C 中格式化 Instagram 日期
【发布时间】:2013-10-16 20:56:58
【问题描述】:

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

            "created_time" = 1361964707;

这到底是什么意思??尤其是如何使用 NSdataFormatter 对其进行格式化?

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

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

谢谢

【问题讨论】:

    标签: ios objective-c nsdateformatter instagram


    【解决方案1】:

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

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

    【讨论】:

    • 我猜我们的帖子“在邮件中越过了”。
    【解决方案2】:

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

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

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

    Unix Epoch 日期是互联网上相当普遍的日期交换标准。我敢打赌,这是一个 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 年的日期,我敢打赌它是正确的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-10
      • 1970-01-01
      • 2018-07-03
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多