Как изменить дату, чтобы соответствовать правильному стандарту groovy?

#jenkins #groovy

#дженкинс #groovy

Вопрос:

Однако я пытаюсь проанализировать следующую дату в Jenkins 2021-10-14T18:12:20.578 00:00 , я получаю сообщение об ошибке Unparseable date: "2020-01-01T10:10:20.578 00:00"

Это мой код, не уверен, что я делаю неправильно:

 Date myDate= new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").parse("2020-01-01T10:10:20.578 00:00");
 

Редактировать:

Благодаря Kaus я обнаружил, что моя дата отформатирована неправильно и должна быть 2020-01-01T10:10:20.578GMT 00:00

Я получаю эту дату из некоторых других файлов. Я могу заменить на GMT следующим образом:

 def myDate = "2020-01-01T10:10:20.578 00:00"
myDate = myDate.replaceAll("\ ", "GMT\ ")
 

Как я могу сделать то же самое, если моя дата "2020-01-01T10:10:20.578-06:00"
Следующее заменяет каждое «-»

 def myDate = "2020-01-01T10:10:20.578-06:00"
myDate = myDate.replaceAll("\ ", "GMT\ ").replaceAll("\-", "GMT\-")
 

Вывод: "2020GMT-01GMT-01T10:10:20.578GMT-06:00"

Ответ №1:

Используйте X для часового пояса ISO8601, а Z не для часового пояса RFC 822.

(из https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html )

 import java.text.SimpleDateFormat

Date myDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX")
    .parse("2020-01-01T10:10:20.578 00:00")
 

Ответ №2:

Отсутствует GMT

 Date myDate= new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").parse("2020-01-01T10:10:20.578GMT 00:00");
 

Комментарии:

1. Быстрый вопрос.. Я получаю эту дату откуда-то еще.. Я обновляю свой OP

2. @Oplop98 если вы не можете изменить строку даты, лучше использовать X вместо Z в программе форматирования даты.