Tôi làm cách nào để trình bày đúng múi giờ khác nhau trong múi giờ của mình? Ví dụ dưới đây chỉ hoạt động bởi vì tôi biết rằng EDT là một giờ trước tôi, vì vậy tôi có thể bỏ ghi chú trừ của myTimeZone()Làm cách nào để sử dụng múi giờ với đối tượng datetime trong python?
import datetime, re
from datetime import tzinfo
class myTimeZone(tzinfo):
"""docstring for myTimeZone"""
def utfoffset(self, dt):
return timedelta(hours=1)
def myDateHandler(aDateString):
"""u'Sat, 6 Sep 2008 21:16:33 EDT'"""
_my_date_pattern = re.compile(r'\w+\,\s+(\d+)\s+(\w+)\s+(\d+)\s+(\d+)\:(\d+)\:(\d+)')
day, month, year, hour, minute, second = _my_date_pattern.search(aDateString).groups()
month = [
'JAN', 'FEB', 'MAR',
'APR', 'MAY', 'JUN',
'JUL', 'AUG', 'SEP',
'OCT', 'NOV', 'DEC'
].index(month.upper()) + 1
dt = datetime.datetime(
int(year), int(month), int(day),
int(hour), int(minute), int(second)
)
# dt = dt - datetime.timedelta(hours=1)
# dt = dt - dt.tzinfo.utfoffset(myTimeZone())
return (dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, 0, 0, 0)
def main():
print myDateHandler("Sat, 6 Sep 2008 21:16:33 EDT")
if __name__ == '__main__':
main()
Hãy xem [câu trả lời này] (http://stackoverflow.com/a/18646797/2697658). Hy vọng nó giúp! – juan
định dạng ngày/giờ cụ thể của bạn có thể được xử lý bằng gói 'email.utils' stdlib: [' ts = mktime_tz (parsedate_tz ('Sat, 6 Sep 2008 21:16:33 EDT')) '] (http: // stackoverflow .com/a/23117071/4279) – jfs