diff --git a/app/src/main/java/com/fongmi/android/tv/api/EpgParser.java b/app/src/main/java/com/fongmi/android/tv/api/EpgParser.java index acded2c4c..e8551c55d 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/EpgParser.java +++ b/app/src/main/java/com/fongmi/android/tv/api/EpgParser.java @@ -72,8 +72,8 @@ public class EpgParser { String key = programme.getChannel(); Tv.Channel channel = mapping.get(key); if (!exist.contains(key)) key = find(exist, channel); - Date startDate = formatFull.parse(programme.getStart()); - Date endDate = formatFull.parse(programme.getStop()); + Date startDate = parse(formatFull, programme.getStart()); + Date endDate = parse(formatFull, programme.getStop()); if (!exist.contains(key) || !isToday(startDate)) continue; if (!epgMap.containsKey(key)) epgMap.put(key, Epg.create(key, today)); epgMap.get(key).getList().add(getEpgData(startDate, endDate, programme)); @@ -95,14 +95,14 @@ public class EpgParser { public static Epg getEpg(String xml, String key) throws Exception { Tv tv = new Persister().read(Tv.class, xml, false); - Epg epg = Epg.create(key, formatDate.format(formatFull.parse(tv.getDate()))); + Epg epg = Epg.create(key, formatDate.format(parse(formatFull, tv.getDate()))); for (Tv.Programme programme : tv.getProgramme()) epg.getList().add(getEpgData(programme)); return epg; } - private static EpgData getEpgData(Tv.Programme programme) throws Exception { - Date startDate = formatFull.parse(programme.getStart()); - Date endDate = formatFull.parse(programme.getStop()); + private static EpgData getEpgData(Tv.Programme programme) { + Date startDate = parse(formatFull, programme.getStart()); + Date endDate = parse(formatFull, programme.getStop()); return getEpgData(startDate, endDate, programme); } @@ -119,4 +119,14 @@ public class EpgParser { return new EpgData(); } } + + private static Date parse(SimpleDateFormat format, String source) { + try { + return format.parse(source); + } catch (Exception e) { + Date date = new Date(); + date.setTime(0); + return date; + } + } } \ No newline at end of file