如何将facebook字符串timestampformate转换为java中的时间戳ts?

时间:2016-02-18 13:06:33

标签: java facebook exception timestamp

我试图将facebook字符串转换为java中的时间戳格式。 当我尝试使用示例代码时,它可以正常工作。

  String text = "2011-10-02 18:48:05.123456";
  Timestamp ts = Timestamp.valueOf(text);
  System.out.println("time stamp formate" +ts);

但是当我在同一个String文本中放置String text = "2016-02-14T05:22:18+0000";(fb时间戳在String formate中)时,它给了我EXCEPTION说

Exception in thread "main" java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]
at java.sql.Timestamp.valueOf(Timestamp.java:204)

3 个答案:

答案 0 :(得分:1)

如果你使用的是java 8:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ");
LocalDateTime localDateTime = LocalDateTime.parse(text, formatter);
Timestamp ts = Timestamp.valueOf(localDateTime);    

答案 1 :(得分:0)

尝试使用以下内容:

public function view($username = ""){
 // do your stuff here
}

答案 2 :(得分:0)

如果有人尝试转换以JSON格式下载消息时在JSON数据中显示的Facebook Timestamp代码,则它是一个13个字符的数字,例如:1548410106047。

您必须首先将其转换为Long数据类型,然后像这样简单地制作一个时间戳:

Long fbt = Long.parseLong(facebookTime);
Timestamp ts = new Timestamp(fbt);

一旦添加了时间戳,就可以使用它进行任何操作,例如:

SimpleDateFormat  sdf      = new SimpleDateFormat("EEEE, MMMM dd, YYYY hh:mm a");
System.out.println(sdf.format(ts));

上面的输出看起来像这样: 2019年1月25日星期五上午01:55