У меня есть API, который дает мне строку даты в следующем формате, мне нужен шаблон для этого формата времени и я хотел бы преобразовать его обратно в экземпляр класса Date. Date.parse(String s) в java.util устарел в Android. так каков метод для этого?
Tnx.
Mon, 14 May 2018 11:47:11 GMT
Вы можете прочитать этот Шаблоны даты и времени, чтобы узнать больше о формате даты и времени
Оракул @TrongHoang недоступен там, где я живу.
Тщательно ищите Stack Overflow перед публикацией.




Попробуй это
//Mon, 14 May 2018 11:47:11 GMT
SimpleDateFormat mySimpleDateFormat = new SimpleDateFormat("EEEE, dd MMMM yyyy HH:mm:ss GMT");
Думаю, 'T' просто доставит букву T.
он говорит, что буква "T" незаконна
@JoopEggen да по ошибке я забыл обновить ответ пожалуйста проверьте обновленный ответ
String format = EEE, dd MMM yyyy HH:mm:ss z
String input = "Mon, 14 May 2018 11:47:11 GMT";
SimpleDateFormat parser = new SimpleDateFormat(format);
Date date = parser.parse(input);
MMM возвращает короткое название месяца (JAN), если требуется, полное использование MMMM. H возвращает час в 24-часовом формате, используйте K для 12-часового формата.
это хорошо, но к концу добавлено +00: 00. и Tnx.
@RezaHamzehie GMT +00: 00
@MadProgrammer, да, но я хочу успокоиться, используя только «GMT», но он печатает его: GMT + 00: 00.
@RezaHamzehie Немного поспорив, чтобы попасть в часовой пояс GMT, он печатает мне Mon, 14 May 2018 11:47:11 GMT
@MadProgrammer, тогда это мой часовой пояс
Поскольку это похоже на 2018 год. Людям действительно стоит использовать API даты / времени, представленный в Java 8 или ThreeTen Backport.
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE, dd MMMM yyyy HH:mm:ss z", Locale.ENGLISH);
LocalDateTime ldt = LocalDateTime.parse("Mon, 14 May 2018 11:47:11 GMT", formatter);
System.out.println(ldt);
ZoneId zoneID = ZoneId.of("GMT");
ZonedDateTime zdt = ldt.atZone(zoneID);
System.out.println(zdt.format(formatter));
Какие выходы ...
2018-05-14T11:47:11
Mon, 14 May 2018 11:47:11 GMT
Вам также следует лучше использовать JavaDocs, который предоставляет примеры доступных свойств средства форматирования.
But DateTimeFormatter is only available in android 26+, my app runs on 16+
а также
but it prints it : GMT+00:00
Следующие...
String format = "EEE, dd MMM yyyy HH:mm:ss z";
String input = "Mon, 14 May 2018 11:47:11 GMT";
SimpleDateFormat parser = new SimpleDateFormat(format, Locale.UK);
Date date = parser.parse(input);
parser.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(parser.format(date));
печатает ...
Mon, 14 May 2018 11:47:11 GMT
Но я использую Java 8 на рабочем столе, поэтому для Android может быть разница.
Tnx, но DateTimeFormatter доступен только в android 26+, мое приложение работает на 16+
Затем вам нужно пометить свой вопрос как таковой, иначе мы просто предполагаем, что вы работаете на рабочем столе, но, похоже, есть бэкпорты доступны для Android
Извините за это, я сделал это, но какой-то парень вошел, отредактировал его и удалил тег android!
@RezaHamzehie ? Ничего страшного, положил обратно
Какие попытки вы предприняли для решения своей проблемы? Ожидается, что Аскерс продемонстрирует исследовательские усилия.