org.threeten.bp.format.DateTimeParseException: Text '2018-07-22T14:00:00-03:00' could not be parsed at index 19

拈花ヽ惹草 提交于 2019-12-08 09:18:20

问题


    public static String formatter(String dateInPattern, String dateOutPattern) {
    OffsetDateTime dateInPatternFormat = OffsetDateTime.parse(dateInPattern, DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ"));
    Date dateInValue = DateTimeUtils.toDate(Instant.parse(dateInPatternFormat.toString()));
    OffsetDateTime dateOutPatternFormat = OffsetDateTime.parse(dateOutPattern);

    return dateOutPatternFormat.format(DateTimeFormatter.ofPattern(dateInValue.toString()));

}

I need to enter a date in this pattern yyyy-MM-dd'T'HH:mm:ss'Z' this is equals (2018-07-22T14:00:00-03:00). And I need an output in this pattern dd/MM/yyyy

Helpe me please.

I have had many problems with date on android :(


回答1:


Your code is very confusing, with weird names and you seem to be mixing up pattern strings, e.g. yyyy-MM-dd, with value strings, e.g. 2018-07-22.

The value string 2018-07-22T14:00:00-03:00 can be parsed into an OffsetDateTime without specifying a DateTimeFormatter, since that is the default format of an OffsetDateTime.

If you then need to format that as dd/MM/yyyy, then use a DateTimeFormatter.

Don't know why your method takes 2 parameters.

Example:

String input = "2018-07-22T14:00:00-03:00";
OffsetDateTime offsetDateTime = OffsetDateTime.parse(input);
String output = offsetDateTime.format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
System.out.println(output); // prints: 22/07/2018


来源:https://stackoverflow.com/questions/52545720/org-threeten-bp-format-datetimeparseexception-text-2018-07-22t140000-0300

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!