如何将Facebook created_time转换为Java Date?

时间:2010-06-09 15:50:07

标签: java facebook

我有一个像这样的FQL语句:

String query = "SELECT post_id, actor_id, target_id, created_time, message 
FROM stream WHERE source_id in (SELECT target_id FROM connection 
WHERE source_id=<userID>) AND is_hidden = 0";

我只是想知道Facebook给我什么样的时间。 我的语句的结果将映射到包装器对象(wallpost)。

myDate.setTime(wallpost.getCreated_time());

没有给我有效日期。

有没有人知道Facebook返回什么样的日期以及如何将其与Date()匹配?

提前感谢!

2 个答案:

答案 0 :(得分:2)

这可能有几个原因。最可能的两个是:

  1. created_time以秒为单位,而Date#setTime()则为毫秒。在设置之前将其乘以1000。

  2. created_time表示24小时,而不是Date所期望的纪元时间戳。在设置之前在00:00 AM附加今天的时间戳。

  3. 要确定其中一个,请执行

    System.out.println(wallpost.getCreated_time()); 
    

    System.out.println(myDate);
    

    这样你就可以在逻辑上结束自己。

答案 1 :(得分:1)

解决方案:将Facebook时间戳乘以1000.Facebook节省秒数,而不是毫秒数。

这完成了这项工作:

myDate.setTime(wallpost.getCreated_time()*1000);