Google
 
Webnews.only-4-geeks.com
Interesting places
news.only-4-geeks.com Forum Index » Python

epoch seconds from a datetime

 
Jump to:  
 
Richard Rossel
PostPosted: Thu Aug 28, 2008 5:18 pm    Post subject: epoch seconds from a datetime
       
Hi friends,
I need a little help here, I 'm stuck with epoch calculation issue.
I have this datetime:
date_new = datetime(*time.strptime('20080101T000000','%Y%m%dT%H%M%S')
[0:6])
This date_new is in UTC
Now I need to know the seconds since epoch of this new date, so I run
this:
seconds = int(time.mktime(date_new.timetuple()))
but the seconds returned belongs to :
Tue, 01 Jan 2008 03:00:00 GMT
because the localtime is in timezone 'America/Santiago': -3

I fix this trying to alter the TZ with time.tzset():
os.environ['TZ'] = 'UTC'
time.tzset()

..... and now I can gets the right epoch, but I can't restore the
previous TimeZone, I try with:
os.environ['TZ'] = '', but the time.tzset() doesn't back to the
original ( America/Santiago)

A solution should be set the os.environ['TZ'] to 'America/Santiago'
but I can't make a TZ hardcode because
the software should works on different timezones.

So the question, how can restore the system into original timezone, or
how to know the seconds since epoch
from UTC datetime without change the local system TIMEZONE.

please help
 

 
Chris Rebert
PostPosted: Thu Aug 28, 2008 5:18 pm    Post subject: Re: epoch seconds from a datetime
       
On Thu, Aug 28, 2008 at 10:18 AM, Richard Rossel <henhiskan@gmail.com> wrote:
Quote:
Hi friends,
I need a little help here, I 'm stuck with epoch calculation issue.
I have this datetime:
date_new = datetime(*time.strptime('20080101T000000','%Y%m%dT%H%M%S')
[0:6])
This date_new is in UTC
Now I need to know the seconds since epoch of this new date, so I run
this:
seconds = int(time.mktime(date_new.timetuple()))
but the seconds returned belongs to :
Tue, 01 Jan 2008 03:00:00 GMT
because the localtime is in timezone 'America/Santiago': -3

I fix this trying to alter the TZ with time.tzset():
os.environ['TZ'] = 'UTC'
time.tzset()

.... and now I can gets the right epoch, but I can't restore the
previous TimeZone, I try with:
os.environ['TZ'] = '', but the time.tzset() doesn't back to the
original ( America/Santiago)

I think you need to del os.environ['TZ'] rather than setting it to the
empty string.

On my box:
Python 2.5.1 (r251:54863, Feb 4 2008, 21:48:13)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Quote:
import os, time
time.asctime()
'Thu Aug 28 11:19:57 2008'
#that's my correct local time
time.tzname
('PST', 'PDT')
#that's my correct timezone
os.environ['TZ'] = 'UTC'
time.tzset()
time.tzname
('UTC', 'UTC')
time.asctime()
'Thu Aug 28 18:20:33 2008'
#we're clearly in UTC now
del os.environ['TZ'] #this is the key line
time.tzset()
time.tzname
('PST', 'PDT')
time.asctime()
'Thu Aug 28 11:21:05 2008'
#and now we're back to my original timezone

Regards,
Chris
========
Follow the path of the Iguana...
Rebertia: LINK
Blog: LINK

Quote:

A solution should be set the os.environ['TZ'] to 'America/Santiago'
but I can't make a TZ hardcode because
the software should works on different timezones.

So the question, how can restore the system into original timezone, or
how to know the seconds since epoch
from UTC datetime without change the local system TIMEZONE.

please help

--
LINK
 

 
Richard Rossel
PostPosted: Thu Aug 28, 2008 6:33 pm    Post subject: Re: epoch seconds from a datetime
       
On 28 ago, 14:25, "Chris Rebert" <cvrebert+...@gmail.com> wrote:
Quote:
On Thu, Aug 28, 2008 at 10:18 AM, Richard Rossel <henhis...@gmail.com> wrote:
Hi friends,
I need a little help here, I 'm stuck with epoch calculation issue.
I have this datetime:
date_new = datetime(*time.strptime('20080101T000000','%Y%m%dT%H%M%S')
[0:6])
This date_new is in UTC
Now I need to know the seconds since epoch of this new date, so I run
this:
seconds = int(time.mktime(date_new.timetuple()))
but the seconds returned belongs to :
Tue, 01 Jan 2008 03:00:00 GMT
because the  localtime is in timezone 'America/Santiago': -3

I fix this trying to alter the TZ with time.tzset():
 os.environ['TZ'] = 'UTC'
time.tzset()

.... and now I can gets the right epoch, but I can't restore the
previous TimeZone, I try with:
os.environ['TZ'] = '', but the time.tzset() doesn't back to the
original ( America/Santiago)

I think you need to del os.environ['TZ'] rather than setting it to the
empty string.

On my box:
Python 2.5.1 (r251:54863, Feb  4 2008, 21:48:13)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin>>> import os, time
time.asctime()

'Thu Aug 28 11:19:57 2008'>>> #that's my correct local time
time.tzname
('PST', 'PDT')
#that's my correct timezone
os.environ['TZ'] = 'UTC'
time.tzset()
time.tzname
('UTC', 'UTC')
time.asctime()

'Thu Aug 28 18:20:33 2008'>>> #we're clearly in UTC now
del os.environ['TZ'] #this is the key line
time.tzset()
time.tzname
('PST', 'PDT')
time.asctime()

'Thu Aug 28 11:21:05 2008'

#and now we're back to my original timezone


Thanks Chris, and also I found that with reload(time) works too

--
Richard Rossel
Ing. Civil Informatico
Valparaiso, Chile
 

Page 1 of 1 .:.

Google
 
Webnews.only-4-geeks.com

Windows Update | C++ | C | PHP | JavaScript | Photoshop | Programming | Windows 2000 | Python | Windows XP | Object | Flash | Flash - ActionScript | Paint Shop Pro | Excel | PowerPoint | Access | Word | Windows 98 | Internet Explorer 6.0 | CorelDraw12 | Java | XML | asm x86 | Linux Mandrake | Linux RedHat | Outlook |  | news from newsgroups |_ | s

Web Templates

Awesome Website Templates ©

O Ɓazickim a Barzym - Kochanowski Jan nieruchomoƛci lublin koszulki Do Samotnoƛci - Mickiewicz Adam Filmiki