【问题标题】:jInstagram unrecognized Date formatjInstagram 无法识别的日期格式
【发布时间】:2016-01-25 11:28:06
【问题描述】:

在引用jInstagram 库时,MediaFeedData.getCreatedTime() 方法返回一个我无法理解其格式的String。

其返回值示例:

  • 1445858153
  • 1445858042
  • 1445857646
  • 1445857633

这是什么日期格式?以及如何将其转换为 java.util.Date 对象?

【问题讨论】:

标签: java date format timestamp


【解决方案1】:

那些所谓的Timestamps

您可以将它们转换为可读的日期并使用SimlpeDateFormat调整格式

String stringDate = new SimpleDateFormat("MM/dd/yyyy").format(1445858153);
System.out.println(stringDate);

要从时间戳创建日期对象,请使用:

  Date date = new Date(1445858153);
  System.out.println(date);

试试看

【讨论】:

  • 这并没有给我一个合理的日期。它是 1970 年,而这些时间戳不应该那么久。
  • @OmarChehab:Java 中有一个关于使用 Epoch 时间戳的“陷阱”。 Java 对 Date.getTime() 和 System.currentTimeMillis() 使用 (UTC) 毫秒,但大多数其他语言都期望/使用秒,而 Epoch 时间的规范也将它们定义为秒。您可以乘以 1000L 以获得第二个值的毫秒版本。
【解决方案2】:

这是日期的长表示。可以调用 new Date(14458581538*1000) 来获取日期信息。

使用下面的代码:

long lDate = (long)14458581538*1000;
Date date= new Date(lDate);
System.out.println(date);

【讨论】:

  • 这是返回 1970 年的日期,Instagram 于 2010 年推出。这些数字是从 Instagram 检索的,所以肯定不是这个方法
  • 老实说,这似乎不合逻辑。这将返回 Sun Dec 14 05:36:14 AST 1969。该号码是从 Instagram 帖子中检索到的?我很困惑
  • 你说得对,先把值转换成(long)
  • 是的,该值实际上被视为整数类型,因此您遇到了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-21
  • 1970-01-01
  • 2019-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多