473,386 Members | 1,748 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

different time tuple format

hi all, sorry if i'm reposting

why time.strptime and time.localtime returns tuple with different DST (9 item of the tuple)?
is there some of setting to fix the problem?
Python 2.2.3 (#1, May 31 2005, 11:33:52)
[GCC 2.95.4 20020320 [FreeBSD]] on freebsd4
Type "help", "copyright", "credits" or "license" for more information.
import time
time.strptime("2005-06-07 21:00:00", "%Y-%m-%d %H:%M:%S") (2005, 6, 7, 21, 0, 0, 6, 1, 0) time.localtime() (2005, 6, 7, 21, 2, 39, 1, 158, 1)

--
Best regards,
Maksim Kasimov
mailto: ka*****@i.com.ua
Jul 19 '05 #1
10 2297
http://docs.python.org/lib/module-time.html tells us the last element
is the DST flag, on your computer that applies for localtime(). To get
this with strptime() you have to tweak the %Z formatter - this is
platform specific.

Jul 19 '05 #2
Like the last poster said, use %Z. On my Mandriva Linux system I get the
following results:
time.localtime() (2005, 6, 7, 15, 7, 12, 1, 158, 1) time.strptime("2005-06-07 15:07:12 EDT", "%Y-%m-%d %H:%M:%S %Z")
(2005, 6, 7, 15, 7, 12, 1, 158, 1)

Rick

Maksim Kasimov wrote:
hi all, sorry if i'm reposting

why time.strptime and time.localtime returns tuple with different DST (9
item of the tuple)? is there some of setting to fix the problem?
Python 2.2.3 (#1, May 31 2005, 11:33:52)
[GCC 2.95.4 20020320 [FreeBSD]] on freebsd4
Type "help", "copyright", "credits" or "license" for more information. >>> import time
>>> time.strptime("2005-06-07 21:00:00", "%Y-%m-%d %H:%M:%S") (2005, 6, 7, 21, 0, 0, 6, 1, 0) >>> time.localtime() (2005, 6, 7, 21, 2, 39, 1, 158, 1) >>>



Jul 19 '05 #3
Rick Holbert wrote:
Like the last poster said, use %Z. On my Mandriva Linux system I get the
following results:

time.localtime()
(2005, 6, 7, 15, 7, 12, 1, 158, 1)
time.strptime("2005-06-07 15:07:12 EDT", "%Y-%m-%d %H:%M:%S %Z") (2005, 6, 7, 15, 7, 12, 1, 158, 1)


does not work at all: "ValueError: format mismatch"

i've check the value of time.tzname:
('EET', 'EEST')

and get the following (again):
time.strptime("2005-06-07 15:07:12 EET", "%Y-%m-%d %H:%M:%S %Z")

(2005, 6, 7, 15, 7, 12, 6, 1, 0)



--
Best regards,
Maksim Kasimov
mailto: ka*****@i.com.ua
Jul 19 '05 #4
In your case it is the EEST, as this is the DST timezone (see again:
http://docs.python.org/lib/module-time.html)

** martin@ubuntu:~ $ python
** Python 2.4.1 (#2, Mar 30 2005, 21:51:10)
** [GCC 3.3.5 (Debian 1:3.3.5-8ubuntu2)] on linux2
** Type "help", "copyright", "credits" or "license" for more
information.
** >>> import time
** >>> print time.tzname
** ('CET', 'CEST')
** >>> time.strptime("2005-06-07 15:07:12 CET", "%Y-%m-%d %H:%M:%S %Z")
** (2005, 6, 7, 15, 7, 12, 1, 158, 0)
** >>> time.strptime("2005-06-07 15:07:12 CEST", "%Y-%m-%d %H:%M:%S
%Z")
** (2005, 6, 7, 15, 7, 12, 1, 158, 1)
** >>>

Jul 19 '05 #5

seems like it is not a platform specific,
i think to solve the problem i need put settings in order (in php it is php.ini file) thus i'll have a portable code.
i've check the following code on my various servers, and it gives me different results:

import time
time.tzname
time.daylight
time.strptime("2005-06-07 15:07:12", "%Y-%m-%d %H:%M:%S")
time.strptime("2005-06-07 15:07:12 EEST", "%Y-%m-%d %H:%M:%S %Z")


Python 2.3.3 (#1, Feb 28 2004, 20:35:22)
[GCC 2.95.4 20020320 [FreeBSD]] on freebsd4
Type "help", "copyright", "credits" or "license" for more information.
import time
time.tzname ('EET', 'EEST') time.daylight 1 time.strptime("2005-06-07 15:07:12", "%Y-%m-%d %H:%M:%S") (2005, 6, 7, 15, 7, 12, 1, 158, -1) time.strptime("2005-06-07 15:07:12 EEST", "%Y-%m-%d %H:%M:%S %Z") (2005, 6, 7, 15, 7, 12, 1, 158, 1)

Python 2.2.3 (#1, Oct 22 2004, 03:10:44)
[GCC 2.95.4 20020320 [FreeBSD]] on freebsd4
Type "help", "copyright", "credits" or "license" for more information. import time
time.tzname ('EET', 'EEST') time.daylight 1 time.strptime("2005-06-07 15:07:12", "%Y-%m-%d %H:%M:%S") (2005, 6, 7, 15, 7, 12, 6, 1, 0) time.strptime("2005-06-07 15:07:12 EEST", "%Y-%m-%d %H:%M:%S %Z")
(2005, 6, 7, 15, 7, 12, 6, 1, 1)

wi******@hotmail.com wrote: In your case it is the EEST, as this is the DST timezone (see again:
http://docs.python.org/lib/module-time.html)

** martin@ubuntu:~ $ python
** Python 2.4.1 (#2, Mar 30 2005, 21:51:10)
** [GCC 3.3.5 (Debian 1:3.3.5-8ubuntu2)] on linux2
** Type "help", "copyright", "credits" or "license" for more
information.
** >>> import time
** >>> print time.tzname
** ('CET', 'CEST')
** >>> time.strptime("2005-06-07 15:07:12 CET", "%Y-%m-%d %H:%M:%S %Z")
** (2005, 6, 7, 15, 7, 12, 1, 158, 0)
** >>> time.strptime("2005-06-07 15:07:12 CEST", "%Y-%m-%d %H:%M:%S
%Z")
** (2005, 6, 7, 15, 7, 12, 1, 158, 1)
** >>>

--
Best regards,
Maksim Kasimov
mailto: ka*****@i.com.ua
Jul 19 '05 #6
The names are at least platform specific, see below the names of the
timezones on my Windows NT 4 box

*** Python 2.3.4 (#53, May 25 2004, 21:17:02) [MSC v.1200 32 bit
(Intel)] on win32
*** Type "help", "copyright", "credits" or "license" for more
information.
*** >>> import time
*** >>> print time.tzname
*** ('W. Europe Standard Time', 'W. Europe Daylight Time')
*** >>>

Jul 19 '05 #7
yes, i agree, on my WinXP it gives another values.

but my question is how to setup the python (or OS) to make it gives the same results when i call
time.strptime("2005-06-07 15:07:12", "%Y-%m-%d %H:%M:%S")
on various servers (and maybe with various OS)?

for now, i can't get it even with the same OS.
and i would like to set time string exactly as "2005-06-07 15:07:12", without "CEST", "EEST" and so on, because as you've notice before, it is different on a variuos systems
wi******@hotmail.com wrote:
The names are at least platform specific, see below the names of the
timezones on my Windows NT 4 box

*** Python 2.3.4 (#53, May 25 2004, 21:17:02) [MSC v.1200 32 bit
(Intel)] on win32
*** Type "help", "copyright", "credits" or "license" for more
information.
*** >>> import time
*** >>> print time.tzname
*** ('W. Europe Standard Time', 'W. Europe Daylight Time')
*** >>>

--
Best regards,
Maksim Kasimov
mailto: ka*****@i.com.ua
Jul 19 '05 #8
It is probably the best to calculate back to UTC.

Assume "2005-06-07 15:07:12" the local time, then convert it as
follows to UTC. Use the UTC time to store/manipulate/whatever you want
to do.

import time
t = time.mktime(time.strptime("2005-06-07 15:07:12", "%Y-%m-%d
%H:%M:%S"))

print time.ctime(t)

offset = time.timezone
if time.daylight:
offset = time.altzone
t += offset
print time.ctime(t)

Jul 19 '05 #9

maybe you are right, i've searched in google groups - such a question was posted to comp.lang.python many times and i has not found (yet) the answer on "how to tune up the output of time.strptime()?"
wi******@hotmail.com wrote:
It is probably the best to calculate back to UTC.

Assume "2005-06-07 15:07:12" the local time, then convert it as
follows to UTC. Use the UTC time to store/manipulate/whatever you want
to do.

import time
t = time.mktime(time.strptime("2005-06-07 15:07:12", "%Y-%m-%d
%H:%M:%S"))

print time.ctime(t)

offset = time.timezone
if time.daylight:
offset = time.altzone
t += offset
print time.ctime(t)

--
Best regards,
Maksim Kasimov
mailto: ka*****@i.com.ua
Jul 19 '05 #10
Maksim Kasimov wrote:
hi all, sorry if i'm reposting

why time.strptime and time.localtime returns tuple with different DST (9
item of the tuple)?


I've been bitten by the quirks in the time modules so many times
that I would advice against using it for any date handling. It's
ok for time measurement as long as you understand the differences
between time.clock and time.time on your particular platform. You
should be aware that it's just a thin wrapper around the c libs,
and they seem to disagree wildly among platforms on how things
should be done. On NT 4 for instance, the C time libs was a few
weeks off concerning when DST starts in Europe (but the win32 API
was correct), time zone names vary among platforms etc. There is
an inverse of localtime() in mktime(), but no inverse of gmtime()
etc. Yuk!

I would suggest that you either update Python to 2.4 (or 2.3) and
use the datetime module, or that you get mxDateTime if you are
stuck with 2.2.
Jul 19 '05 #11

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: Lukas Kasprowicz | last post by:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Folks, My Proglem is, I get after a query on a mysql database with module MySQLdb a tuple but I need this output from database as a string....
3
by: Jonas Galvez | last post by:
If I have a tuple like this: (year, month, day, hour, minute) Is there a way to automatically generate a string like this? "YYYY-MM-DDTHH:MM:00" I remember seeing something about it...
1
by: Jinming Xu | last post by:
Hello everyone, While embedding my C++ program with Python, I am impeded by the conversion from a Python Tuple to a C++ array. I hope to get some assistance from you guys. I have a sequence...
3
by: beliavsky | last post by:
Using Python 2.4 on Windows, for me the command print os.stat("temp.txt") gives 1115478343 , which is "seconds since the epoch". How can I get the modification time in a format such as
5
by: kpp9c | last post by:
Hi, I was looking at python & datetime and hoping that it would already have a method/func to translate time formats. I need to translate seconds to hh:mm:ss.ms and vice versa and would like...
5
by: fff_afafaf | last post by:
Do you know is it possible to put different kinds of tuples to one container? E.g. to a vector? (The lengths of the tuples are different, and also the types in the tuples are different.. -Is it...
14
by: Dave Rahardja | last post by:
Is there a way to generate a series of statements based on the data members of a structure at compile time? I have a function that reverses the endianness of any data structure: /// Reverse...
2
by: barronmo | last post by:
I'm trying to get the difference in dates using the time module rather than datetime because I need to use strptime() to convert a date and then find out how many weeks and days until that date. ...
3
by: Daniel | last post by:
I have a list of strings, which I need to convert into tuples. If the string is not in python tuple format (i.e. "('one', 'two')", "("one", 'two')", etc.), then I can just make it a 1-tuple (i.e....
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.