我在尝试解析发送到我的Android客户端的Date字符串时得到一个Unparseable日期。
这是一个例外:
java.text.ParseException:Unparseable date:" 2018-09-18T00:00:00Z" (在 偏移19)在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));
如何更改代码以解析后端发送的确切格式?
答案 0 :(得分:4)
您必须将格式字符串更改为:
SimpleDateFormat dateFormatParse = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'");
String targetDate = "2018-09-18T00:00:00Z";
Date dateString = dateFormatParse.parse(targetDate));
答案 1 :(得分:1)
您的后端发送的日期格式遵循ISO-8601即时格式。
您可以使用LocalDate.parse(targetDate, DateTimeFormatter.ISO_INSTANT)
来解析它。