Hi list. Apologies in advance if the formatting is skewed -- using Outlook web access. Is there a way to format dates for a specific locale or time zone without actually modifying the DateTime object itself? For example, if I have a function whose job is to return a formatted date, given a DateTime, locale and time zone: sub locale_date { my ($date,$locale,$time_zone) = @_; my $fmt = DateTime::Format::Strptime->new(pattern => '%b %Y', locale => $locale, time_zone => $time_zone); return $fmt->format_datetime($date); } $d = DateTime->now; $str = locale_date($d, 'fr_FR', 'Europe/Paris'); # "Mar 2005"
$d = DateTime->now(locale => 'fr_FR', time_zone => 'Europe/Paris'); $str = locale_date($d, 'fr_FR', 'Europe/Paris'); # "mars 2006" Is there a way to change this code to use the correct locale for the formatting, but without modifying the original date? (And without cloning it -- that's cheating ;-) The locale doesn't seem so much a property of the date, but of the way it's being presented. Thanks, Philip