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 16d3191c7..910139995 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 @@ -75,7 +75,7 @@ public class EpgParser { try { Tv tv = new Persister().read(Tv.class, xml, false); String rawDate = tv.getDate(); - String date = rawDate.isEmpty() ? LocalDate.now(zoneId).format(Formatters.DATE) : parseFull(rawDate, zoneId).format(Formatters.DATE); + String date = rawDate.isEmpty() ? LocalDate.now(zoneId).format(Formatters.DATE) : parseFull(rawDate, zoneId).atZoneSameInstant(zoneId).format(Formatters.DATE); Epg epg = Epg.create(key, date); tv.getProgramme().forEach(programme -> epg.getList().add(getEpgData(programme, zoneId))); return epg; diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Epg.java b/app/src/main/java/com/fongmi/android/tv/bean/Epg.java index 43b7a6e17..0e15451f0 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Epg.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Epg.java @@ -87,7 +87,7 @@ public class Epg { for (EpgData item : getList()) { item.setStartTime(parseEpgTime(getDate().concat(item.getStart()), zoneId)); item.setEndTime(parseEpgTime(getDate().concat(item.getEnd()), zoneId)); - if (item.getEndTime() < item.getStartTime()) item.checkDay(); + if (item.getEndTime() < item.getStartTime()) item.checkDay(zoneId); item.trans(); } } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/EpgData.java b/app/src/main/java/com/fongmi/android/tv/bean/EpgData.java index a8feeb870..67cf3693d 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/EpgData.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/EpgData.java @@ -102,8 +102,8 @@ public class EpgData { return "clock=" + Formatters.EPG_RANGE.format(Instant.ofEpochMilli(getStartTime())) + "-" + Formatters.EPG_RANGE.format(Instant.ofEpochMilli(getEndTime())); } - public void checkDay() { - setEndTime(Instant.ofEpochMilli(getEndTime()).atZone(ZoneId.systemDefault()).plusDays(1).toInstant().toEpochMilli()); + public void checkDay(ZoneId zoneId) { + setEndTime(Instant.ofEpochMilli(getEndTime()).atZone(zoneId).plusDays(1).toInstant().toEpochMilli()); } public void trans() {