ฉันกำลังพยายามหาความแตกต่างระหว่างโมดูลdatetime
และtime
โมดูลและแต่ละโมดูลควรใช้สำหรับอะไร
ฉันรู้ว่าdatetime
มีทั้งวันที่และเวลา ใช้time
โมดูลอะไร?
ตัวอย่างจะได้รับการชื่นชมและความแตกต่างเกี่ยวกับเขตเวลาจะเป็นที่สนใจเป็นพิเศษ
ฉันกำลังพยายามหาความแตกต่างระหว่างโมดูลdatetime
และtime
โมดูลและแต่ละโมดูลควรใช้สำหรับอะไร
ฉันรู้ว่าdatetime
มีทั้งวันที่และเวลา ใช้time
โมดูลอะไร?
ตัวอย่างจะได้รับการชื่นชมและความแตกต่างเกี่ยวกับเขตเวลาจะเป็นที่สนใจเป็นพิเศษ
คำตอบ:
time
โมดูลเป็นหลักสำหรับการทำงานกับยูนิกซ์แสตมป์เวลา แสดงเป็นตัวเลขทศนิยมที่ใช้เวลาเป็นวินาทีนับตั้งแต่ยุคยูนิกซ์ datetime
โมดูลสามารถรองรับจำนวนมากของการดำเนินงานเดียวกัน แต่มีเชิงวัตถุชุดอื่น ๆ ประเภทและยังมีการสนับสนุนที่ จำกัด สำหรับโซนเวลา
time
ป้องกันความไม่ชัดเจนของ DSTใช้เฉพาะระบบtime
โมดูลแทนของdatetime
โมดูลที่จะป้องกันไม่ให้ปัญหาความคลุมเครือกับกลางวันเวลาออมทรัพย์ (DST)
การแปลงเป็นรูปแบบเวลาใดก็ได้รวมถึงเวลาท้องถิ่นนั้นค่อนข้างง่าย:
import time
t = time.time()
time.strftime('%Y-%m-%d %H:%M %Z', time.localtime(t))
'2019-05-27 12:03 CEST'
time.strftime('%Y-%m-%d %H:%M %Z', time.gmtime(t))
'2019-05-27 10:03 GMT'
time.time()
คือตัวเลขทศนิยมที่แสดงเวลาเป็นวินาทีตั้งแต่ยุคระบบ time.time()
เหมาะอย่างยิ่งสำหรับการประทับเวลาที่ชัดเจน
หากระบบเรียกใช้โปรโตคอลเวลาเครือข่าย (NTP)เพิ่มเติมระบบจะจบลงด้วยฐานเวลาที่ค่อนข้างมั่นคง
นี่คือเอกสารของtime
โมดูล
time.localtime()
ซึ่งแน่นอนว่ามี DST อยู่ในตัวถ้าเราจะเป็นคนเจ้าระเบียบเราไม่ควรใช้time.gmtime()
แทนหรือ? :)
ipython
รายการที่time.gmtime()
ให้ค่าทูเพิลในขณะที่time.time()
ให้เวลาUNIX epochเป็นค่าทศนิยมเดี่ยวของวินาทีที่ผ่านไปตั้งแต่ 00:00:00 UTC วันพฤหัสบดีที่ 1 มกราคม 1970 ฟังก์ชันtime.localtime(t)
จะแปลงเวลายุคเป็นท้องถิ่น เวลาทูเพิล ดังนั้นคำตอบสำหรับคำถามของคุณคือ«ไม่»
t = time.time()
เป็นตัวเลขจุดลอยตัวที่แสดงเวลาเป็นวินาทีตั้งแต่ยุคระบบ ดังนั้นเราสามารถเพิ่มหรือทดแทน 86400 วินาทีทุกวัน t += 86400
โมดูลเวลาสามารถใช้เมื่อคุณต้องการเวลาในการบันทึกเฉพาะเช่นสมมติว่าคุณมีตาราง / ไฟล์แยกต่างหากสำหรับการทำธุรกรรมในแต่ละวันจากนั้นคุณก็ต้องใช้เวลา อย่างไรก็ตามประเภทข้อมูลเวลามักจะใช้เพื่อเก็บความแตกต่างของเวลาระหว่างจุดเวลา 2 จุด
นอกจากนี้ยังสามารถทำได้โดยใช้วันที่และเวลา แต่ถ้าเราจัดการกับเวลาของวันใดวันหนึ่งเท่านั้นโมดูลเวลาก็สามารถใช้ได้
Datetime ใช้เพื่อจัดเก็บข้อมูลและเวลาเฉพาะสำหรับเรกคอร์ด เช่นเดียวกับในหน่วยงานให้เช่า วันที่ครบกำหนดจะเป็นประเภทข้อมูลวันที่และเวลา
หากคุณสนใจในเขตเวลาคุณควรพิจารณาการใช้ pytz
time
และdatetime.time
?