تحويل التاريخ والوقت إلى الوقت POSIX
سؤال
وكيف يمكنني تحويل التاريخ والوقت أو الكائن التاريخ إلى الطابع الزمني POSIX في بيثون؟ هناك طرق لإنشاء كائن التاريخ والوقت للخروج من الطابع الزمني، لكنني لا يبدو أن تجد أي وسائل واضحة للقيام بهذه العملية في الطريق المعاكس.
المحلول
import time, datetime
d = datetime.datetime.now()
print time.mktime(d.timetuple())
نصائح أخرى
لحسابات UTC، calendar.timegm
هو معكوس time.gmtime
.
import calendar, datetime
d = datetime.datetime.utcnow()
print calendar.timegm(d.timetuple())
لاحظ أن بايثون الآن (3.5.2) يتضمن rel="noreferrer"> للحصول على هذه الأشياء في datetime
:
>>> import datetime
>>> now = datetime.datetime.now()
>>> now.timestamp() # Local time
1509315202.161655
>>> now.replace(tzinfo=datetime.timezone.utc).timestamp() # UTC
1509329602.161655
في بيثون، time.time () يمكن أن يعود ثانية كما عدد النقطة العائمة يتضمن عنصر العشري مع ميكروثانية. من أجل تحويل التاريخ والوقت إلى هذا التمثيل، لديك لإضافة عنصر ميكروثانية لأن timetuple المباشر لا يشمل ذلك.
import time, datetime
posix_now = time.time()
d = datetime.datetime.fromtimestamp(posix_now)
no_microseconds_time = time.mktime(d.timetuple())
has_microseconds_time = time.mktime(d.timetuple()) + d.microsecond * 0.000001
print posix_now
print no_microseconds_time
print has_microseconds_time
لا تنتمي إلى StackOverflow