我正在尝试将facebook字符串转换为java中的时间戳格式。当我尝试使用示例代码时,它工作正常。
String text = "2011-10-02 18:48:05.123456";
Timestamp ts = Timestamp.valueOf(text);
System.out.println("time stamp formate" +ts);
但是当我把qazxsw poi(字符串格式的fb时间戳)放在同一个String文本中时,它给了我EXCEPTION说
String text = "2016-02-14T05:22:18+0000";
如果您使用的是java 8:
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)
尝试使用类似的东西:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ");
LocalDateTime localDateTime = LocalDateTime.parse(text, formatter);
Timestamp ts = Timestamp.valueOf(localDateTime);
如果有人在您以JSON格式下载邮件时尝试转换JSON数据中显示的Facebook时间戳代码,则它是一个13个字符的数字,如下所示:1548410106047。
您必须先将其转换为Long数据类型,然后简单地从中创建一个Timestamp,如下所示:
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date d = formatter.parse(text);
long time = d.getTime();
Timestamp t = new Timestamp(time);
在时间戳中获得它后,您可以使用它执行任何操作,例如:
Long fbt = Long.parseLong(facebookTime);
Timestamp ts = new Timestamp(fbt);
上面的输出如下所示:2019年1月25日星期五01:55 AM