P:\test>perl -le"print scalar localtime; $ENV{TZ}='PST8PDT'; print scalar localtime; system 'perl -le \"print scalar localtime\"' " Thu Jan 19 19:52:12 2006 Thu Jan 19 19:52:12 2006 Thu Jan 19 11:52:12 2006 #### #include #include #include #include DWORD main(int argc, char *argv[]) { struct tm *newtime; char am_pm[] = "AM"; __time64_t long_time; _putenv( argv[1] ); _time64( &long_time ); /* Get time as long integer. */ newtime = _localtime64( &long_time ); /* Convert to local time. */ if( newtime->tm_hour > 12 ) /* Set up extension. */ strcpy( am_pm, "PM" ); if( newtime->tm_hour > 12 ) /* Convert from 24-hour */ newtime->tm_hour -= 12; /* to 12-hour clock. */ if( newtime->tm_hour == 0 ) /*Set hour to 12 if midnight. */ newtime->tm_hour = 12; printf( "%.19s %s\n", asctime( newtime ), am_pm ); return 0; } #### P:\test>ltime TZ=PST8PDT Thu Jan 19 12:20:55 AM #### #! perl -slw use strict; unless( $ENV{TZ} ) { $ENV{TZ} = 'PST8PDT'; exec "$^X $0"; } print scalar localtime; __END__ P:\test>524251 P:\test>Thu Jan 19 12:32:30 2006 #### #! perl -slw use strict; print "default:" . localtime(); $ENV{TZ} = 'GST1GDT'; print `perl -le"print 'Germany: ' . localtime()"`; $ENV{TZ} = 'PST8PDT'; print `perl -le"print 'Pacific: ' . localtime()"`; __END__ P:\test>524251-2 default:Thu Jan 19 20:41:24 2006 Germany: Thu Jan 19 19:41:24 2006 Pacific: Thu Jan 19 12:41:24 2006