安卓无法解析日期异常

3

当尝试解析发送给我的Android客户端的日期字符串时,我遇到了一个无法解析的日期。

以下是异常信息:

java.text.ParseException: Unparseable date: "2018-09-18T00:00:00Z" (at offset 19) at java.text.DateFormat.parse(DateFormat.java:571)

C#后端发送的日期格式(C#对象属性为DateTime):

2018-09-18T00:00:00Z

失败的Java代码如下:

SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss aa");
String targetDate = "2018-09-18T00:00:00Z";
Date date = dateFormat.parse(targetDate));

我该如何修改代码以解析后端发送的确切格式?
2个回答

7
您需要将格式字符串更改为:
SimpleDateFormat dateFormatParse = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'");
String targetDate = "2018-09-18T00:00:00Z";
Date dateString = dateFormatParse.parse(targetDate));

哎呀,我犯了一个大错误。我需要将字符串解析为Java日期格式,而不是字符串。对此感到抱歉。已编辑问题。 - Jay

2

你的后端发送的日期格式遵循ISO-8601即时格式。

你可以使用LocalDate.parse(targetDate, DateTimeFormatter.ISO_INSTANT)来解析它。

LocalDate仅支持SDK 26+,即Android 8及以上版本。


2
你应该添加一个提示,说明LocalDate仅适用于Java 8及更高版本。 - Jens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接