Convertir String en java.time.ZonedDateTime

SSF:

Quiero convertir elementos de una lista de arreglo en ZonedDateTimeobjeto después de analizar ellos. Una cadena se muestra a continuación.

"2017-02-12 06:59:00 +1300"

En el momento en que uso el DateTimeFormatter:

DateTimeFormatter dateTimeFormatter =
  DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss ZZ");

Y tratar de usar parse, para obtener el tiempo:

this.actionTime = dateTimeFormatter.parse(actionTime, ZonedDateTime::from);

Vea a continuación el método:

public DateCalculatorTest(String actionTime, int expectedDayOfWeek) {
    DateTimeFormatter dateTimeFormatter = 
      DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss ZZ");
    DateTimeFormatter localTimeFormatter = 
      DateTimeFormatter.ofPattern("YYYY-MM-dd");
    this.actionTime = dateTimeFormatter.parse(actionTime, ZonedDateTime::from);
    this.expectedDayOfWeek = expectedDayOfWeek;
}

Sin embargo, no soy capaz de analizar la cadena. Obtuve el siguiente error:

Text '2017-02-12 06:59:00 +1300' could not be parsed: Unable to obtain ZonedDateTime from TemporalAccessor: {WeekBasedYear[WeekFields[SUNDAY,1]]=2017, DayOfMonth=12, MonthOfYear=2, OffsetSeconds=46800},ISO resolved to 06:59 of type java.time.format.Parsed

¿Hay una manera de hacer esto con java.time?

SSF:

Me las arreglé para solucionar este problema utilizando la siguiente:

        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss ZZ");
    DateTimeFormatter localTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    this.symbol = symbol;
    this.actionTime = ZonedDateTime.parse(actionTime, dateTimeFormatter);
    this.actionDate = LocalDate.parse(expectedResult, localTimeFormatter);

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=186729&siteId=1
Recomendado
Clasificación