小编Vic*_*cky的帖子

为什么 Instant.now() 有时格式不同?

我的代码如下所示:

String PROPER_DATE_FORMAT = "yyyy-MM-dd";
String format = "yyyy-MM-dd'T'HH:mm:ss.SSSX";

SimpleDateFormat sdf = new SimpleDateFormat(format);
Date d = sdf.parse(Instant.now().toString());
SimpleDateFormat properFormat = new SimpleDateFormat(PROPER_DATE_FORMAT);
String formatterDate = properFormat.format(d);
Run Code Online (Sandbox Code Playgroud)

现在,大多数时候,这段代码可以工作,但时不时地,我会返回 Instant.now() ,2018-05-25T18:56:09Z然后它会抛出一个异常,因为格式不匹配。

为什么有时会不一致?

例外的是java.lang.RuntimeException: java.text.ParseException: Unparseable date: "2018-05-25T18:56:09Z"

通常,whenInstant.now().toString()会返回一个具有上述格式的字符串。同样,这段代码在大多数情况下都有效,但也有几次不起作用,我很困惑为什么。

我想是否是因为末尾有一个零但没有显示,但我不相信,因为我能够通过 Instant. 获得 2018-05-25T20:06:58.900Z 的值。 now().toString()

java date java-8 java-time

7
推荐指数
2
解决办法
1万
查看次数

标签 统计

date ×1

java ×1

java-8 ×1

java-time ×1