use 5.020; use Test2::V0; use DateTime; use DateTime::Format::Strptime; my $dstr = '2023-03-27 00:30'; my $strp = DateTime::Format::Strptime->new( pattern => '%Y-%m-%d %H:%M', locale => 'de_DE', time_zone => 'Europe/Paris', ); my $t = $strp->parse_datetime($dstr); diag $t->strftime('%Y-%m-%d %H:%M %z'); my $nt = $t->clone->subtract( seconds => 24*60*60 ); isnt $t->ymd('-'), $nt->ymd('-'); diag $nt->strftime('%Y-%m-%d %H:%M %z'); my $ddiff = $t->mday - $nt->mday; ok( ($ddiff < 0 || $ddiff == 1), '1 day different or month wrap'); $dstr = $nt->ymd ('-'); is $dstr, '2023-03-26';