Строка yyyy-mm-ddThh JodaTime: mmss.От Z до DateTime

Привет я использую время Joda для преобразования моих строковых дат в объекты DateTime.

В настоящее время у меня есть следующая строка:

2014-02-16T00:17:20.000Z

как преобразовать это в объект DateTime?

Я пробовал:

DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ssZZZ");
        DateTime dt = formatter.parseDateTime("2014-02-16T00:17:20.000Z");

, но я получаю следующую ошибку:

java.lang.IllegalArgumentException: Invalid format: "2014-02-16T00:17:20.000Z" is malformed at ".000Z"

любая помощь очень ценится

3 ответов


для будущих посетителей, более простое решение:

String date = "2014-02-16T00:17:20.000Z";
DateTime dateTime = new DateTime(date);

этот формат является форматом времени даты ISO, который DateTime использует по умолчанию. Вам просто нужно

DateTime d = DateTime.parse(s);

или

DateTime d = DateTime.parse(s, ISODateTimeFormat.dateTimeParser());

может быть проблема в том, что вы, ребята, используете Z (zone) в caps

Я пробовал ниже код работает хорошо

SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSz", Locale.ENGLISH);  
Date date =formatter.parse("2016-09-06T08:35:02.530GMT"); 
DateTime d = new DateTime(date.getTime());