2010-06-13 3 views

답변

0
당신은 this.Try을 달성하기 위해 "pytz"를 사용할 수 있습니다

:

from string import atoi 
from datetime import datetime 
import pytz # Available http://sourceforge.net/project/showfiles.php?group_id=79122 

thedate = "20080518" 
thetime = "2210" 

europe_tz = pytz.timezone('Europe/Paris') # Note that your local install timezone should be settings.py 
brazil_tz = pytz.timezone('America/Sao_Paulo') 
server_tz = pytz.timezone('America/Los_Angeles') 

stat_time = datetime(atoi(thedate[0:4]), atoi(thedate[4:6]), atoi(thedate[6:8]), atoi(thetime[0:2]), atoi(thetime[2:4]), 0, tzinfo=europe_tz) 

stat_time.astimezone(brazil_tz) # returns time for brazil 
stat_time.astimezone(server_tz) # returns server time 

출처 : http://menendez.com/blog/python-timezone-conversion-example-using-pytz/

+0

나를 위해 좋지 않다, 나는 2 strigns- "04:05"와 "-0100"을 가지고있다. 그리고 나는 새로운 시간 그러나 10x를 계산하기 위해 그들을 사용하고 싶어한다! –

1

이 같은 것을보십시오 :

>>> import datetime 
    >>> my_time = datetime.datetime.strptime('04:05', '%H:%M') 
    >>> my_time 
    datetime.datetime(1900, 1, 1, 4, 5) 
    >>> offset_str = '-0100' 
    >>> offset = datetime.timedelta(hours=int(offset_str.lstrip('-')[:2]), minutes=int(offset_str.lstrip('-')[2:])) * (-1 if offset_str.startswith('-') else 1) 
    >>> offset 
    datetime.timedelta(-1, 82800) 
    >>> my_time + offset 
    datetime.datetime(1900, 1, 1, 3, 5) 
    >>> (my_time + offset).time() 
    datetime.time(3, 5) 

을 한마디로 :

>>> import datetime 
    >>> my_time = datetime.datetime.strptime('04:05', '%H:%M') 
    >>> offset_str = '-0100' 
    >>> offset = datetime.timedelta(hours=int(offset_str.lstrip('-')[:2]), minutes=int(offset_str.lstrip('-')[2:])) * (-1 if offset_str.startswith('-') else 1) 
    >>> (my_time + offset).time() 
    datetime.time(3, 5) 
+0

10x! 그 일을 할 수 있지만, 더 pythonic 방법을 생각할 수있는 사람? –

관련 문제