Java 7分析DateTime(秒到小数点后7位)



我必须使用Java 7解析通过json发送的日期-时间字符串,日期-时间格式如下:

2016-04-26T11:35:30.0543787Z

我遇到的问题是秒中的额外小数——如果它只有小数点后3位,例如毫秒,我可以解析它。

我可以使用SimpleDateFormat和格式字符串
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"解析该值,但这给出了一个不正确的值。

任何帮助都将不胜感激!

由于您不关心毫秒的精度,我们可以删除秒中的小数。

**注意:**输出将取决于您的服务器/机器的当前时区。这就是为什么您觉得输出与您预期的不同。

String time = "2016-04-26T11:35:30.0543787Z";
int l = time.lastIndexOf('.');
time = time.substring(0, l);
time = time+"Z";
System.out.println(time);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
try {
Date date = dateFormat.parse(time.replaceAll("Z$", "+0000"));
System.out.println(date);
System.out.println("time zone : " + TimeZone.getDefault().getID());
System.out.println(dateFormat.format(date));
} catch (ParseException e) {
e.printStackTrace();
}

最新更新