thanks to everyone for their help on this . . I've nearly got it! the timezone change works but only when I use current time
$ENV{TZ} = ":/usr/share/zoneinfo/America/New_York"; my $epochtime = timelocal($dbsec, $dbmin, $dbhour, $dbday, $dbmonth, $dbyear); # values out of database my $tm = localtime (time); # when used produces correct time i.e. five hours behind London my $tm = localtime ($epochtime); # when used produces same hour as $dbhour above i.e. doesn't change to timezone printf("<br>Date And Time Formatted: %02d:%02d:%02d - %02d/%02d/%02d\n", $tm->hour, $tm->min, $tm->sec, $tm->mday,$tm->mon+1,$tm->year+1900); Could it be the typeof variable that $epochtime is? I've even tried lc($epochtime) before putting into localtime() function, in case it didn't realise it was a string!! any further thoughts appreciated, Dermot -----Original Message----- From: Wagner, David --- Senior Programmer Analyst --- WGO [mailto:[EMAIL PROTECTED] Sent: 07 March 2003 16:20 To: Byrne, Dermot; [EMAIL PROTECTED] Subject: RE: [Perl-unix-users] changing time from database to CET? Byrne, Dermot wrote: > aha > > so I'm using timelocal function now > but I'm getting > Undefined subroutine ::timelocal > > does this mean there is a seperate timelocal module i need to install? > > I've got > /usr/lib/perl5/5.6.0/Time/Local.pm > /usr/lib/perl5/5.6.0/Time/gmtime.pm > /usr/lib/perl5/5.6.0/Time/localtime.pm > /usr/lib/perl5/5.6.0/Time/tm.pm > > > > > -----Original Message----- > From: $Bill Luebkert [mailto:[EMAIL PROTECTED] > Sent: 07 March 2003 14:09 > To: Byrne, Dermot > Cc: '[EMAIL PROTECTED]' > Subject: Re: [Perl-unix-users] changing time from database to CET? > > > Byrne, Dermot wrote: >> Hello >> >> As Bill suggested, here is what I have at the moment >> >> $startFormatted is the date that comes out of database >> (formatted with DATE_FORMAT( datetime, '%S %i %H %w %m %Y')) >> >> # I have module >> use Time::localtime; >> >> # firstly i split variable into parts >> my ($sec, $min, $hour, $day, $month, $year) = split(/ >> +/,$startFormatted); >> >> # but if I put into localtime function >> my($localisedsec, $localisedmin, $localisedhour, $localisedday, >> $localisedmonth, $localisedyear) = localtime ($sec, $min, $hour, >> $day, $month, $year); >> >> # i get 'Too many arguments for localtime ' error > > localtime takes one optional arg - an epoch time. > Maybe you want timelocal instead ? > >> when I put into localtime function like this >> my($localisedsec, $localisedmin, $localisedhour, $localisedday, >> $localisedmonth, $localisedyear) = localtime ($startFormatted); >> >> # i doesn't mind however >> >> >> # the statements >> print $ENV{TZ}; >> print "<br>$startFormatted <br>"; >> print "$sec, $min, $hour, $day, $month, $year <br>"; >> print "$localisedsec, $localisedmin, $localisedhour, $localisedday, >> $localisedmonth, $localisedyear"; >> >> #produce this output >> CET >> 00 00 14 0 03 2003 >> 00, 00, 14, 0, 03, 2003 >> 0, 0, 1, 1, 0, 70 Add the following at start of script and should clear up problem: use Time::Local; Wags ;) ********************************************************** This message contains information that is confidential and proprietary to FedEx Freight or its affiliates. It is intended only for the recipient named and for the express purpose(s) described therein. Any other use is prohibited. **************************************************************** ________________________________________________________________________ This e-mail has been scanned for all viruses by Star Internet. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk ________________________________________________________________________ http://www.musicchoice.co.uk Support Digital Media - Join EDiMA - http://www.edima.org Music Choice Limited (company registration number 2838971) is a company incorporated in England and Wales with its registered office at Fleet House, 57-61 Clerkenwell Road, London EC1M 5LA. ********************************************************************** Information in this email is confidential and may be privileged. It is intended for the addressee only. If you have received it in error, please notify the sender immediately and delete it from your system. You should not otherwise copy it, retransmit it or use or disclose its contents to anyone. This footnote also confirms that this email message has been swept by MIMEsweeper for the presence of computer viruses. www.mimesweeper.com ********************************************************************** ________________________________________________________________________ This e-mail has been scanned for all viruses by Star Internet. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk ________________________________________________________________________ _______________________________________________ Perl-Unix-Users mailing list [EMAIL PROTECTED] To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs