Fix epg timezone

fongmi
FongMi 2 weeks ago
parent b5e6b3c22f
commit def0551392
  1. 2
      app/src/main/java/com/fongmi/android/tv/api/EpgParser.java
  2. 2
      app/src/main/java/com/fongmi/android/tv/bean/Epg.java
  3. 4
      app/src/main/java/com/fongmi/android/tv/bean/EpgData.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;

@ -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();
}
}

@ -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() {

Loading…
Cancel
Save