how to change the time string into number?
luofeiyu
elearn2014 at gmail.com
Thu Aug 14 03:30:33 EDT 2014
>>> import sys
>>> sys.version
'3.4.0 (v3.4.0:04f714765c13, Mar 16 2014, 19:25:23) [MSC v.1600 64 bit
(AMD64)]'
>>> import time
>>> time.tzname
('China Standard Time', 'China Daylight Time')
On 8/14/2014 3:25 PM, Cameron Simpson wrote:
> On 14Aug2014 14:52, luofeiyu <elearn2014 at gmail.com> wrote:
>> in the manual https://docs.python.org/3.4/library/time.html
>>
>> ┌──┬──────────────────────────────────────────────────────────────────────┬─┐
>>
>> │ │Time zone offset indicating a positive or negative time
>> difference │ │
>> │%z│from UTC/GMT of the form +HHMM or -HHMM, where H represents
>> decimal │ │
>> │ │hour digits and M represents decimal minute digits [-23:59,
>> +23:59]. │ │
>> ├──┼──────────────────────────────────────────────────────────────────────┼─┤
>>
>> │%Z│Time zone name (no characters if no time zone
>> exists). │ │
>> └──┴──────────────────────────────────────────────────────────────────────┴─┘
>>
>>
>> t1='Sat, 09 Aug 2014 07:36:46 '
>> time.strptime(t1,"%a, %d %b %Y %H:%M:%S ")
>> time.struct_time(tm_year=2014, tm_mon=8, tm_mday=9, tm_hour=7,
>> tm_min=36,
>> tm_sec
>> =46, tm_wday=5, tm_yday=221, tm_isdst=-1)
>>
>>>>> t2='Sat, 09 Aug 2014 07:36:46 -0700'
>>>>> time.strptime(t2,"%a, %d %b %Y %H:%M:%S %z")
>> time.struct_time(tm_year=2014, tm_mon=8, tm_mday=9, tm_hour=7,
>> tm_min=36,
>> tm_sec
>> =46, tm_wday=5, tm_yday=221, tm_isdst=-1)
>>
>> t1 and t2 is different time ,the timezone in t2 is -0700 ,why we get
>> the same
>> result?
>
> What you get back a struct_time, which is little more than the numeric
> values extracted from a time string. And as far as the text you have
> supplied in your example, those values are the same.
>
> Regarding the difference, string in t2 has a time zone offset.
>
> My Python 3.4 doco says (about struct_time):
>
> Changed in version 3.3: tm_gmtoff and tm_zone attributes are
> available on platforms with C library supporting the corresponding
> fields in struct tm.
>
> Judging by your output, your C library does not support the tm_gmtoff
> and tm_zone fields in its C library "struct tm".
>
> Please:
>
> tell us what specific version of Python you are using
>
> tell us what OS you're running on
>
> Then look up the localtime() or gmtime() functions for you C library
> and see what that documentation says about "struct tm", which is what
> they and the C library strptime() return.
>
>>>>> t3='Sat, 09 Aug 2014 07:36:46 +0400'
>>>>> time.strptime(t3,"%a, %d %b %Y %H:%M:%S %z")
>> time.struct_time(tm_year=2014, tm_mon=8, tm_mday=9, tm_hour=7,
>> tm_min=36,
>> tm_sec
>> =46, tm_wday=5, tm_yday=221, tm_isdst=-1)
>>
>> The Directive %z has no any effect here,what is the matter?
>
> The directive allows the strptime parser to keep recognising text.
> Imagine, for example, that the timezone were embedded in the middle of
> the string for some reason.
>
> It looks like you platform does not support storing the time zone
> information in the C library "struct tm", and therefore it does not
> get exposed to the Python interpreter.
>
> Cheers,
> Cameron Simpson <cs at zip.com.au>
>
> What I want is Facts. Teach these boys and girls nothing but Facts.
> Facts
> alone are wanted in life. Plant nothing else, and root out everything
> else.
> - Charles Dickens John Huffam 1812-1870 Hard Times [1854]
More information about the Python-list
mailing list