From f40128dedfd431e91960e1271f1a677369941058 Mon Sep 17 00:00:00 2001 From: Birte Kristina Friesel Date: Tue, 2 Apr 2024 17:04:25 +0200 Subject: Convert non-local timestamps to local time zone --- lib/Travel/Routing/DE/HAFAS/Connection/Section.pm | 38 ++++++++++++++--------- 1 file changed, 24 insertions(+), 14 deletions(-) (limited to 'lib/Travel/Routing/DE/HAFAS/Connection') diff --git a/lib/Travel/Routing/DE/HAFAS/Connection/Section.pm b/lib/Travel/Routing/DE/HAFAS/Connection/Section.pm index 552401b..09032af 100644 --- a/lib/Travel/Routing/DE/HAFAS/Connection/Section.pm +++ b/lib/Travel/Routing/DE/HAFAS/Connection/Section.pm @@ -58,20 +58,30 @@ sub new { time_zone => 'Europe/Berlin' ); - my $sched_dep = $sec->{dep}{dTimeS}; - my $rt_dep = $sec->{dep}{dTimeR}; - my $sched_arr = $sec->{arr}{aTimeS}; - my $rt_arr = $sec->{arr}{aTimeR}; - - for my $ts ( $sched_dep, $rt_dep, $sched_arr, $rt_arr ) { - if ($ts) { - $ts = handle_day_change( - date => $date, - time => $ts, - strp_obj => $strptime, - ); - } - } + my $sched_dep = handle_day_change( + date => $date, + time => $sec->{dep}{dTimeS}, + offset => $sec->{dep}{dTZOffset}, + strp_obj => $strptime, + ); + my $rt_dep = handle_day_change( + date => $date, + time => $sec->{dep}{dTimeR}, + offset => $sec->{dep}{dTZOffset}, + strp_obj => $strptime, + ); + my $sched_arr = handle_day_change( + date => $date, + time => $sec->{arr}{aTimeS}, + offset => $sec->{arr}{aTZOffset}, + strp_obj => $strptime, + ); + my $rt_arr = handle_day_change( + date => $date, + time => $sec->{arr}{aTimeR}, + offset => $sec->{arr}{aTZOffset}, + strp_obj => $strptime, + ); my $tco = {}; for my $tco_id ( @{ $sec->{jny}{dTrnCmpSX}{tcocX} // [] } ) { -- cgit v1.2.3