[LON-CAPA-cvs] cvs: loncom(version_2_8_X) /localize lonlocal.pm
raeburn
raeburn@source.lon-capa.org
Fri, 12 Feb 2010 14:20:41 -0000
raeburn Fri Feb 12 14:20:41 2010 EDT
Modified files: (Branch: version_2_8_X)
/loncom/localize lonlocal.pm
Log:
- Backport 1.59 (part).
Index: loncom/localize/lonlocal.pm
diff -u loncom/localize/lonlocal.pm:1.50.2.2 loncom/localize/lonlocal.pm:1.50.2.3
--- loncom/localize/lonlocal.pm:1.50.2.2 Mon Jan 5 16:55:04 2009
+++ loncom/localize/lonlocal.pm Fri Feb 12 14:20:41 2010
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Localization routines
#
-# $Id: lonlocal.pm,v 1.50.2.2 2009/01/05 16:55:04 raeburn Exp $
+# $Id: lonlocal.pm,v 1.50.2.3 2010/02/12 14:20:41 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -397,6 +397,15 @@
my $dt = DateTime->from_epoch(epoch => $thistime)
->set_time_zone(&gettimezone($timezone));
+
+ # TimeZone tries to determine the 'local' timezone from $ENV{TZ} if this
+ # fails it searches through various system files. Under certain
+ # circumstances this is an extremly expensive operation.
+ # So after the first run we store the timezone in $ENV{TZ} to significantly
+ # speed up future lookups.
+ $ENV{TZ} = $dt->time_zone()->name()
+ if (! $ENV{TZ} && gettimezone($timezone) eq 'local');
+
if ((¤t_language=~/^en/) || (!$lh)) {
return $dt->strftime("%a %b %e %I:%M:%S %P %Y (%Z)");