delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2007/12/14/16:26:29

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
To: cygwin AT cygwin DOT com
Date: Fri, 14 Dec 2007 22:25:59 +0100 (CET)
From: roman DOT vasicek AT email DOT cz
Subject: =?us-ascii?Q?Timezone=20manipulation=20within=20Perl=20script?=
Mime-Version: 1.0
Message-Id: <9761.12995-16991-2031106093-1197667559@email.cz>
X-Abuse: helpdesk AT seznam DOT cz
X-Seznam-User: roman DOT vasicek AT email DOT cz
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

--MessagePart:1597453076.0-16991-731278637-1197667559
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset="us-ascii"

Hi all,
I want to ask you how convert time between different timezones in perl script running under cygwin. I have an application which store datetime information in Zulu/GMT. I need to provide date in user timezone. How to do the correct conversion? I want to be able to offer Timezone info like 'Europe/Prague'. Following code snippet will provide correct output when running under Active state Perl (time will differ 1 or 2 hours depending on input date), but when running under cygwin perl no conversion will be done. Can anyone help me?

        $ENV{TZ}    = 'Zulu';
        POSIX::tzset();
        $time       = timegm($second, $minute, $hour, $day, $month, $year);

        $ENV{TZ}    = 'Europe/Prague';
        POSIX::tzset();
        ($second, $minute, $hour, $day, $month, $year)   = POSIX::localtime($time);

Attached program will produce under ActiveState PERL

 Winter (delta should be +1 h)
 ZULU : 2007-12-13 11:47:02 Zulu
 LOCAL: 2007-12-13 12:47:02 Europe/Prague

 Summer (delta should be +2 h)
 ZULU : 2007-06-13 11:47:02 Zulu
 LOCAL: 2007-06-13 13:47:02 Europe/Prague

and under CygWin PERL output will be

 Winter (delta should be +1 h)
 ZULU : 2007-12-13 11:47:02 Zulu
 LOCAL: 2007-12-13 11:47:02 Europe/Prague

 Summer (delta should be +2 h)
 ZULU : 2007-06-13 11:47:02 Zulu
 LOCAL: 2007-06-13 11:47:02 Europe/Prague


Best Regards,
Roman

--MessagePart:1597453076.0-16991-731278637-1197667559
Content-Transfer-Encoding: base64
Content-Type: application/x-perl;
	name="=?us-ascii?Q?test=2D1=2Epl?=";
	charset="us-ascii"
Content-Disposition: attachment;
	filename="=?us-ascii?Q?test=2D1=2Epl?="

IyEvdXNyL2Jpbi9wZXJsIC13CiMKCnVzZSBzdHJpY3Q7CnVzZSBQT1NJWCAg
IHF3KCk7CnVzZSBUaW1lOjpMb2NhbDsKCm15ICR6dWx1OwpteSAkbG9jYWw7
Cm15ICR6b25lOwoKc3ViIGZvcm1hdF9kYXRldGltZSB7CiAgICBteSAkZGF0
ZXRpbWUgICAgPSBzaGlmdDsgICAgICAgICAgICAjIFlZWVlNTUREaGg6bW06
c3MgLSBEYXRlOjpNYW5pcCBjb21wYXRpYmxlIGZvcm1hdAogICAgbXkgJHRp
bWV6b25lICAgID0gc2hpZnQgfHwgJ0dNVCc7ICAgIyBleHBlY3QgR01UIGJ5
IGRlZmF1bHQKICAgIG15ICRodG1sX3JlcSAgICA9IHNoaWZ0IHx8IDA7ICAg
ICAgICMgb3V0cHV0IGZvciBIVE1MIHBhZ2U/ICcgJyA9PiAnJm5ic3A7Jwog
ICAgbXkgJHJlc3VsdCAgICAgID0gJyc7CgogICAgaWYgKCRkYXRldGltZSA9
fiAvXihcZHs0fSkoXGR7Mn0pKFxkezJ9KShcZHsyfSk6KFxkezJ9KTooXGR7
Mn0pJC8pIHsKICAgICAgICBteSAkeWVhciAgICA9ICQxOwogICAgICAgIG15
ICRtb250aCAgID0gJDI7CiAgICAgICAgbXkgJGRheSAgICAgPSAkMzsKICAg
ICAgICBteSAkaG91ciAgICA9ICQ0OwogICAgICAgIG15ICRtaW51dGUgID0g
JDU7CiAgICAgICAgbXkgJHNlY29uZCAgPSAkNjsKCiAgICAgICAgJHJlc3Vs
dCA9IHNwcmludGYoIiVkLSUwMmQtJTAyZCAlMDJkOiUwMmQ6JTAyZCAlcyIs
ICQxLCAkMiwgJDMsICQ0LCAkNSwgJDYsICR0aW1lem9uZSk7CiAgICAgICAg
JHJlc3VsdCA9fiBzLyAvJm5ic3A7L2cgaWYgKCRodG1sX3JlcSk7CiAgICB9
CgogICAgcmV0dXJuICRyZXN1bHQ7Cn0KCnN1YiBpc196dWx1IHsKICAgIG15
ICR6dWx1ICAgID0gc2hpZnQ7CiAgICBteSAkcmVzdWx0ICA9IDA7CgogICAg
aWYgKCR6dWx1ID1+IC9eKFxkezE0fSlaJC8pIHsKICAgICAgICAkcmVzdWx0
ID0gMQogICAgfQoKICAgIHJldHVybiAkcmVzdWx0Owp9CgpzdWIgenVsdV90
b19kYXRldGltZSB7CiAgICBteSAkenVsdSAgICA9IHNoaWZ0OwogICAgbXkg
JHJlc3VsdCAgPSAnJzsKCiAgICBpZiAoaXNfenVsdSgkenVsdSkpIHsKICAg
ICAgICAkcmVzdWx0ID0gam9pbignOicsICR6dWx1ID1+IC9eKFxkezEwfSko
XGR7Mn0pKFxkezJ9KS8pOwogICAgfQoKICAgIHJldHVybiAkcmVzdWx0Owp9
CgpzdWIgenVsdV90b19sb2NhbF9kYXRldGltZSB7CiAgICBteSAkenVsdSAg
ICAgICAgPSBzaGlmdDsKICAgIG15ICR0aW1lX3pvbmUgICA9IHNoaWZ0IHx8
ICdFdXJvcGUvUHJhZ3VlJzsKICAgIG15ICRyZXN1bHQgICAgICA9ICcnOwog
ICAgbXkgJHRpbWU7CiAgICBteSAkeWVhcjsKICAgIG15ICRtb250aDsKICAg
IG15ICRkYXk7CiAgICBteSAkaG91cjsKICAgIG15ICRtaW51dGU7CiAgICBt
eSAkc2Vjb25kOwoKICAgIGlmIChpc196dWx1KCR6dWx1KSkgewogICAgICAg
ICgkeWVhciwgJG1vbnRoLCAkZGF5LCAkaG91ciwgJG1pbnV0ZSwgJHNlY29u
ZCkgID0gJHp1bHUgPX4gL14oXGQrKShcZHsyfSkoXGR7Mn0pKFxkezJ9KShc
ZHsyfSkoXGR7Mn0pLzsKCiAgICAgICAgIyBmaXggb2Zmc2V0CiAgICAgICAg
JG1vbnRoLS07CiAgICAgICAgJHllYXIgICAtPSAxOTAwOwoKICAgICAgICBt
eSAkYWxyZWFkeSA9IDA7CiAgICAgICAgbXkgJG9yaWdpbmFsX3RpbWVfem9u
ZTsKCiAgICAgICAgIyBzYXZlIGVudmlyb25tZW50IHNldHRpbmdzCiAgICAg
ICAgaWYgKGV4aXN0cyAkRU5We1RafSkgewogICAgICAgICAgICAkYWxyZWFk
eSAgICAgICAgICAgID0gMTsKICAgICAgICAgICAgJG9yaWdpbmFsX3RpbWVf
em9uZSA9ICRFTlZ7VFp9OwogICAgICAgIH0KCiAgICAgICAgIyBkbyBkYXRl
dGltZSBjb252ZXJzaW9uIGRlcGVuZGludCB0byB0YXJnZXQgdGltZXpvbmUK
ICAgICAgICAkRU5We1RafSAgICA9ICdadWx1JzsKICAgICAgICBQT1NJWDo6
dHpzZXQoKTsKICAgICAgICAkdGltZSAgICAgICA9IHRpbWVnbSgkc2Vjb25k
LCAkbWludXRlLCAkaG91ciwgJGRheSwgJG1vbnRoLCAkeWVhcik7CiAgICAg
ICAgJEVOVntUWn0gICAgPSAkdGltZV96b25lOwogICAgICAgIFBPU0lYOjp0
enNldCgpOwogICAgICAgICgkc2Vjb25kLCAkbWludXRlLCAkaG91ciwgJGRh
eSwgJG1vbnRoLCAkeWVhcikgICA9IFBPU0lYOjpsb2NhbHRpbWUoJHRpbWUp
OwoKICAgICAgICAjIGZpeCBvZmZzZXQKICAgICAgICAkbW9udGgrKzsKICAg
ICAgICAkeWVhciAgICs9IDE5MDA7CgogICAgICAgICMgb3V0cHV0IGZvcm1h
dGluZwogICAgICAgICRyZXN1bHQgPSBzcHJpbnRmICIlZCUwMmQlMDJkJTAy
ZDolMDJkOiUwMmQiLCAkeWVhciwgJG1vbnRoLCAkZGF5LCAkaG91ciwgJG1p
bnV0ZSwgJHNlY29uZDsKCiAgICAgICAgIyByZXZlcnQgZW52aXJvbm1lbnQg
c2V0dGluZ3MgYmFjawogICAgICAgIGlmICgkYWxyZWFkeSkgewogICAgICAg
ICAgICAkRU5We1RafSAgICA9ICRvcmlnaW5hbF90aW1lX3pvbmU7CiAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgZGVsZXRlICRFTlZ7VFp9OwogICAg
ICAgIH0KICAgICAgICBQT1NJWDo6dHpzZXQoKTsKICAgIH0KCiAgICByZXR1
cm4gJHJlc3VsdDsKfQoKCiR6dWx1ICAgPSAnMjAwNzEyMTMxMTQ3MDJaJzsK
JGxvY2FsICA9IHp1bHVfdG9fbG9jYWxfZGF0ZXRpbWUoJHp1bHUpOwokem9u
ZSAgID0gJ0V1cm9wZS9QcmFndWUnOwoKIyBzaG91bGQgYmUgKzEgaG91cgpw
cmludCAiXG4iLCAiV2ludGVyIChkZWx0YSBzaG91bGQgYmUgKzEgaCkiLCAi
XG4iOwpwcmludCAiWlVMVSA6ICIsIGZvcm1hdF9kYXRldGltZSh6dWx1X3Rv
X2RhdGV0aW1lKCR6dWx1KSwgJ1p1bHUnKSwgIlxuIjsKcHJpbnQgIkxPQ0FM
OiAiLCBmb3JtYXRfZGF0ZXRpbWUoJGxvY2FsLCAkem9uZSksICJcbiI7Cgok
enVsdSA9ICcyMDA3MDYxMzExNDcwMlonOwokbG9jYWwgPSB6dWx1X3RvX2xv
Y2FsX2RhdGV0aW1lKCR6dWx1LCAkem9uZSk7CgojIHNob3VsZCBiZSArMiBo
b3VyCnByaW50ICJcbiIsICJTdW1tZXIgKGRlbHRhIHNob3VsZCBiZSArMiBo
KSIsICJcbiI7CnByaW50ICJaVUxVIDogIiwgZm9ybWF0X2RhdGV0aW1lKHp1
bHVfdG9fZGF0ZXRpbWUoJHp1bHUpLCAnWnVsdScpLCAiXG4iOwpwcmludCAi
TE9DQUw6ICIsIGZvcm1hdF9kYXRldGltZSgkbG9jYWwsICR6b25lKSwgIlxu
IjsKCg==


--MessagePart:1597453076.0-16991-731278637-1197667559
Content-Type: text/plain; charset=us-ascii

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/
--MessagePart:1597453076.0-16991-731278637-1197667559--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019