ฟังก์ชันutcnow ()ของโมดูลวันที่และเวลาสามารถใช้เพื่อรับเวลา UTC ปัจจุบัน
>>> import datetime
>>> utc_datetime = datetime.datetime.utcnow()
>>> utc_datetime.strftime("%Y-%m-%d %H:%M:%S")
'2010-02-01 06:59:19'
ตามลิงก์ที่กล่าวถึงข้างต้นโดย Tom: http://lucumr.pocoo.org/2011/7/15/eppur-si-muove/ พูดว่า:
UTC เป็นเขตเวลาที่ไม่มีการปรับเวลาตามฤดูกาลและยังคงเป็นเขตเวลาที่ไม่มีการเปลี่ยนแปลงการกำหนดค่าในอดีต
วัดและเก็บเวลาใน UTC ทุกครั้งทุกครั้ง
หากคุณต้องการบันทึกเวลาที่ถ่ายให้จัดเก็บแยกกัน
อย่าเก็บข้อมูลเวลาท้องถิ่น + เขตเวลา!
หมายเหตุ - หากข้อมูลใด ๆ ของคุณอยู่ในภูมิภาคที่ใช้ DST ให้ใช้pytz
และดูคำตอบของ John Millikin
หากคุณต้องการรับเวลา UTC จากสตริงที่กำหนดและโชคดีของคุณเพียงพอที่จะอยู่ในภูมิภาคในโลกที่ไม่ได้ใช้ DST หรือคุณมีข้อมูลที่ชดเชยจาก UTC โดยไม่ต้องใช้ DST:
-> ใช้เวลาท้องถิ่นเป็นพื้นฐานสำหรับค่าออฟเซ็ต:
>>> # Obtain the UTC Offset for the current system:
>>> UTC_OFFSET_TIMEDELTA = datetime.datetime.utcnow() - datetime.datetime.now()
>>> local_datetime = datetime.datetime.strptime("2008-09-17 14:04:00", "%Y-%m-%d %H:%M:%S")
>>> result_utc_datetime = local_datetime + UTC_OFFSET_TIMEDELTA
>>> result_utc_datetime.strftime("%Y-%m-%d %H:%M:%S")
'2008-09-17 04:04:00'
-> หรือจากออฟเซ็ตที่รู้จักโดยใช้ datetime.timedelta ():
>>> UTC_OFFSET = 10
>>> result_utc_datetime = local_datetime - datetime.timedelta(hours=UTC_OFFSET)
>>> result_utc_datetime.strftime("%Y-%m-%d %H:%M:%S")
'2008-09-17 04:04:00'
UPDATE:
เนื่องจาก python 3.2 datetime.timezone
มีวางจำหน่ายแล้ว คุณสามารถสร้างออบเจ็กต์วันที่และเวลาได้โดยใช้คำสั่งด้านล่าง:
import datetime
timezone_aware_dt = datetime.datetime.now(datetime.timezone.utc)
หากคุณพร้อมที่จะรับการแปลงเขตเวลาให้ไปอ่านสิ่งนี้:
https://medium.com/@eleroy/10-things-you-need-to-know-about-date-and-time-in-python-with-datetime-pytz-dateutil-timedelta-309bfbafb3f7