Строка 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());