Отличный ответ, большое спасибо, изменение DateTimeZone.forID работает хорошо. очень детальная прогулка, которую я также буду использовать в будущем, без сомнения: D: D

лизирую несколько новостных лент, и pubDate каждого элемента соответствует одному и тому же формату:

Вс, 11 июня 2017 18:18:23 +0000

К сожалению, один канал не делает:

Суббота, 10 июня 2017 12:49:45 EST

Я пытался разобрать дату без удачи с помощью androids java date иSimpleDateFormat:

try {
    Calendar cal = Calendar.getInstance();
    TimeZone tz = cal.getTimeZone();
    SimpleDateFormat readDate = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
    readDate.setTimeZone(TimeZone.getTimeZone("UTC"));
    Date date = readDate.parse(rssDateTime);
    SimpleDateFormat writeDate = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
    writeDate.setTimeZone(tz);
    parsedDate = writeDate.format(date);
} catch (ParseException e) {
    e.printStackTrace();
}

Какие броски и ошибки:

java.text.ParseException: не разбираемая дата: "сб, 3 июня 2017 19:53:09 EST" (по смещению 26)

Я также попытался сделать это, используя время Joda:

DateTime dtUTC = null;
DateTimeZone timezone = DateTimeZone.getDefault();
DateTimeFormatter formatDT = DateTimeFormat.forPattern("EEE, d MMM yyyy HH:mm:ss Z");
DateTime dtRssDateTime = formatDT.parseDateTime(rssDateTime);
DateTime now = new DateTime();
DateTime nowUTC = new LocalDateTime(now).toDateTime(DateTimeZone.UTC);

long instant = now.getMillis();
long instantUTC = nowUTC.getMillis();
long offset = instantUTC - instant;
dtUTC = dtRssDateTime.withZoneRetainFields(timezone);
dtUTC = dtUTC.minusMillis((int) offset);
String returnTimeDate = "";
returnTimeDate = dtUTC.toString(formatDT);

Который выдает ошибку:

Вызвано: java.lang.IllegalArgumentException: неверный формат: «сб, 10 июня 2017 12:49:45 EST» искажен в «EST»

Кто-нибудь сталкивался с этим раньше?

Ответы на вопрос(1)

Ваш ответ на вопрос