use correct timezone

git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@535 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
andreas.schildbach@gmail.com 2011-03-24 13:55:17 +00:00
parent 4d745ee647
commit 2524ad72b3
2 changed files with 93 additions and 62 deletions

View file

@ -311,6 +311,33 @@ public final class ParserUtils
}
}
private static final Pattern P_GERMAN_DATE = Pattern.compile("(\\d{2})\\.(\\d{2})\\.(\\d{2,4})");
public static final void parseGermanDate(final Calendar calendar, final CharSequence str)
{
final Matcher m = P_GERMAN_DATE.matcher(str);
if (!m.matches())
throw new RuntimeException("cannot parse: '" + str + "'");
calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(m.group(1)));
calendar.set(Calendar.MONTH, Integer.parseInt(m.group(2)) - 1);
final int year = Integer.parseInt(m.group(3));
calendar.set(Calendar.YEAR, year >= 100 ? year : year + 2000);
}
private static final Pattern P_EUROPEAN_TIME = Pattern.compile("(\\d{1,2}):(\\d{2})(?::(\\d{2}))?");
public static final void parseEuropeanTime(final Calendar calendar, final CharSequence str)
{
final Matcher m = P_EUROPEAN_TIME.matcher(str);
if (!m.matches())
throw new RuntimeException("cannot parse: '" + str + "'");
calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(m.group(1)));
calendar.set(Calendar.MINUTE, Integer.parseInt(m.group(2)));
calendar.set(Calendar.SECOND, m.group(3) != null ? Integer.parseInt(m.group(3)) : 0);
}
public static Date parseAmericanTime(final String str)
{
try