mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-18 16:29:51 +00:00
use correct timezone
git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@536 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
parent
2524ad72b3
commit
acdec06e61
15 changed files with 417 additions and 351 deletions
|
@ -215,8 +215,10 @@ public class InvgProvider extends AbstractHafasProvider
|
|||
if (mHeadFine.matches())
|
||||
{
|
||||
final String location = ParserUtils.resolveEntities(mHeadFine.group(1));
|
||||
final Date currentTime = ParserUtils.joinDateTime(ParserUtils.parseDate(mHeadFine.group(2)),
|
||||
ParserUtils.parseTime(mHeadFine.group(3)));
|
||||
final Calendar currentTime = new GregorianCalendar(timeZone());
|
||||
currentTime.clear();
|
||||
ParserUtils.parseGermanDate(currentTime, mHeadFine.group(2));
|
||||
ParserUtils.parseEuropeanTime(currentTime, mHeadFine.group(3));
|
||||
final List<Departure> departures = new ArrayList<Departure>(8);
|
||||
String oldZebra = null;
|
||||
|
||||
|
@ -232,26 +234,31 @@ public class InvgProvider extends AbstractHafasProvider
|
|||
final Matcher mDepFine = P_DEPARTURES_FINE.matcher(mDepCoarse.group(2));
|
||||
if (mDepFine.matches())
|
||||
{
|
||||
final Calendar current = new GregorianCalendar();
|
||||
current.setTime(currentTime);
|
||||
final Calendar parsed = new GregorianCalendar();
|
||||
parsed.setTime(ParserUtils.parseTime(mDepFine.group(1)));
|
||||
parsed.set(Calendar.YEAR, current.get(Calendar.YEAR));
|
||||
parsed.set(Calendar.MONTH, current.get(Calendar.MONTH));
|
||||
parsed.set(Calendar.DAY_OF_MONTH, current.get(Calendar.DAY_OF_MONTH));
|
||||
if (ParserUtils.timeDiff(parsed.getTime(), currentTime) < -PARSER_DAY_ROLLOVER_THRESHOLD_MS)
|
||||
parsed.add(Calendar.DAY_OF_MONTH, 1);
|
||||
final Calendar plannedTime = new GregorianCalendar(timeZone());
|
||||
plannedTime.setTimeInMillis(currentTime.getTimeInMillis());
|
||||
ParserUtils.parseEuropeanTime(plannedTime, mDepFine.group(1));
|
||||
|
||||
final Date plannedTime = parsed.getTime();
|
||||
if (plannedTime.getTimeInMillis() - currentTime.getTimeInMillis() < -PARSER_DAY_ROLLOVER_THRESHOLD_MS)
|
||||
plannedTime.add(Calendar.DAY_OF_MONTH, 1);
|
||||
|
||||
Date predictedTime = null;
|
||||
final Calendar predictedTime;
|
||||
final String prognosis = ParserUtils.resolveEntities(mDepFine.group(2));
|
||||
if (prognosis != null)
|
||||
{
|
||||
predictedTime = new GregorianCalendar(timeZone());
|
||||
if (prognosis.equals("pünktlich"))
|
||||
predictedTime = plannedTime;
|
||||
{
|
||||
predictedTime.setTimeInMillis(plannedTime.getTimeInMillis());
|
||||
}
|
||||
else
|
||||
predictedTime = ParserUtils.joinDateTime(currentTime, ParserUtils.parseTime(prognosis));
|
||||
{
|
||||
predictedTime.setTimeInMillis(currentTime.getTimeInMillis());
|
||||
ParserUtils.parseEuropeanTime(predictedTime, prognosis);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
predictedTime = null;
|
||||
}
|
||||
|
||||
final String lineType = mDepFine.group(3);
|
||||
|
@ -264,8 +271,8 @@ public class InvgProvider extends AbstractHafasProvider
|
|||
|
||||
final String position = mDepFine.group(7) != null ? "Gl. " + ParserUtils.resolveEntities(mDepFine.group(7)) : null;
|
||||
|
||||
final Departure dep = new Departure(plannedTime, predictedTime, line, line != null ? lineColors(line) : null, null, position,
|
||||
destinationId, destination, null);
|
||||
final Departure dep = new Departure(plannedTime.getTime(), predictedTime != null ? predictedTime.getTime() : null, line,
|
||||
line != null ? lineColors(line) : null, null, position, destinationId, destination, null);
|
||||
|
||||
if (!departures.contains(dep))
|
||||
departures.add(dep);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue