2017年2月22日 星期三

[ Python 常見問題 ] Convert local time to another time zone

Source From Here 
Question 
I want to convert the current time to +0900 in Python. What's the appropriate way to do this (assuming in the time module)? 

How-To 
You can use the datetime module instead. Adapted from: 
https://docs.python.org/3/library/datetime.html#datetime.tzinfo.fromutc 
- test.py 
  1. #!/usr/bin/env python  
  2. from datetime import tzinfo, timedelta, datetime  
  3.   
  4. class FixedOffset(tzinfo):  
  5.     def __init__(self, offset):  
  6.         self.__offset = timedelta(hours=offset)  
  7.         self.__dst = timedelta(hours=offset-1)  
  8.         self.__name = ''  
  9.   
  10.     def utcoffset(self, dt):  
  11.         return self.__offset  
  12.   
  13.     def tzname(self, dt):  
  14.         return self.__name  
  15.   
  16.     def dst(self, dt):  
  17.         return self.__dst  
  18.   
  19. fmt = "%Y-%m-%d %H:%M:%S %Z%z"  
  20. print datetime.now().strftime(fmt)  
  21. print datetime.now(FixedOffset(9)).strftime(fmt)  
Now let's test the sample code above: 
# date +"%Z %z"
CST +0800
# ls -hl /etc/localtime # Check the timezone of host
... /etc/localtime -> ../usr/share/zoneinfo/Asia/Taipei
# ./test.py
2017-02-23 00:18:32
2017-02-23 01:18:32 +0900

Supplement 
Converting time zones for datetime objects in Python

沒有留言:

張貼留言

[Git 常見問題] error: The following untracked working tree files would be overwritten by merge

  Source From  Here 方案1: // x -----删除忽略文件已经对 git 来说不识别的文件 // d -----删除未被添加到 git 的路径中的文件 // f -----强制运行 #   git clean -d -fx 方案2: 今天在服务器上  gi...