Adding unknown variables to time.mktime()

Roman Suzi rnd at onego.ru
Tue Jun 26 14:23:14 CEST 2001


On Tue, 26 Jun 2001, Gustaf Liljegren wrote:

> "Roman Suzi" <rnd at onego.ru> wrote:
> 
> > >to be able to give only the 6 first values, since I've never heard of
> > >Julian days, and week day is not significant in this case.
> 
> > try with all 9 integers.
> > RTFM time module docs.
> 
> Read before you post. I always check the library reference, but it doesn't
> give any hints on what I asked for. If mktime() can't do it, maybe there's
> anyother way that you could suggest?

In the docs it is said what those 3 last parameters are about
and how you can specify them if you do not know their values.


   Index  Field                 Values
       0  year                  (e.g. 1993)
       1  month                 range [1,12]
       2  day                   range [1,31]
       3  hour                  range [0,23]
       4  minute                range [0,59]
       5  second                range [0,61]; see (1) in
strftime() description
       6  weekday               range [0,6], Monday is 0
       7  Julian day            range [1,366]
       8  daylight savings flag 0, 1 or -1; see below
       Note that unlike the C structure, the month value is a range of
       1-12, not 0-11. A year value will be handled as described under
       ``Year 2000 (Y2K) issues'' above. A -1 argument as daylight
       savings flag, passed to mktime() will usually result in the
       correct daylight savings state to be filled in.
  
...

   mktime(tuple)
          This is the inverse function of localtime(). Its argument is
          the full 9-tuple (since the dst flag is needed; use -1 as the
          dst flag if it is unknown) which expresses the time in local
          time, not UTC. It returns a floating point number, for
          compatibility with time(). If the input value cannot be
          represented as a valid time, OverflowError is raised.


time.mktime((2001,6,23, 18,0,23, -1, -1, -1))

Works just fine in absolutely most cases (except that 1 hour in the year,
when time makes loops due to daytime savings ;-) and it is not possible to
know DST flag for sure. At those moments system must rely on UTC time.

It's very important to read manual when dealing with such delicate topic
as time.

Maybe you also want to use mxDateTime (not in the standard Python
distribution)
 
> Gustaf

Sincerely yours, Roman A.Suzi
-- 
 - Petrozavodsk - Karelia - Russia - mailto:rnd at onego.ru -
 







More information about the Python-list mailing list