Каков шаблон этого формата времени?

У меня есть API, который дает мне строку даты в следующем формате, мне нужен шаблон для этого формата времени и я хотел бы преобразовать его обратно в экземпляр класса Date. Date.parse(String s) в java.util устарел в Android. так каков метод для этого?

Tnx.

Mon, 14 May 2018 11:47:11 GMT

Какие попытки вы предприняли для решения своей проблемы? Ожидается, что Аскерс продемонстрирует исследовательские усилия.

Filnor 14.05.2018 09:38

Вы можете прочитать этот Шаблоны даты и времени, чтобы узнать больше о формате даты и времени

Trong Hoang 14.05.2018 09:45

Оракул @TrongHoang недоступен там, где я живу.

Reza Hamzehei 14.05.2018 10:03

Тщательно ищите Stack Overflow перед публикацией.

Basil Bourque 15.05.2018 08:44
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
4
1 242
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Попробуй это

                                                          //Mon,  14 May  2018 11:47:11 GMT
SimpleDateFormat mySimpleDateFormat = new SimpleDateFormat("EEEE, dd MMMM yyyy HH:mm:ss GMT");

Думаю, 'T' просто доставит букву T.

Joop Eggen 14.05.2018 09:57

он говорит, что буква "T" незаконна

Reza Hamzehei 14.05.2018 10:02

@JoopEggen да по ошибке я забыл обновить ответ пожалуйста проверьте обновленный ответ

AskNilesh 14.05.2018 11:05
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.

Reza Hamzehei 14.05.2018 10:09

@RezaHamzehie GMT +00: 00

MadProgrammer 14.05.2018 10:13

@MadProgrammer, да, но я хочу успокоиться, используя только «GMT», но он печатает его: GMT + 00: 00.

Reza Hamzehei 14.05.2018 10:18

@RezaHamzehie Немного поспорив, чтобы попасть в часовой пояс GMT, он печатает мне Mon, 14 May 2018 11:47:11 GMT

MadProgrammer 14.05.2018 10:22

@MadProgrammer, тогда это мой часовой пояс

Reza Hamzehei 14.05.2018 10:23
Ответ принят как подходящий

Поскольку это похоже на 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+

Reza Hamzehei 14.05.2018 10:20

Затем вам нужно пометить свой вопрос как таковой, иначе мы просто предполагаем, что вы работаете на рабочем столе, но, похоже, есть бэкпорты доступны для Android

MadProgrammer 14.05.2018 10:23

Извините за это, я сделал это, но какой-то парень вошел, отредактировал его и удалил тег android!

Reza Hamzehei 14.05.2018 10:25

@RezaHamzehie ? Ничего страшного, положил обратно

MadProgrammer 14.05.2018 10:26

Другие вопросы по теме