แทนที่จะแสดงออกนี้เพื่อสร้างการประทับเวลา POSIX จากdt,
(dt - datetime(1970,1,1)).total_seconds()
ใช้สิ่งนี้:
int(dt.strftime("%s"))
ฉันได้รับคำตอบที่ถูกต้องในตัวอย่างของคุณโดยใช้วิธีที่สอง
แก้ไข: บางคนติดตาม ... หลังจากที่ความคิดเห็นบางส่วน (ดูด้านล่าง) ผมก็อยากรู้เกี่ยวกับการขาดการสนับสนุนหรือเอกสารสำหรับใน%s strftimeนี่คือสิ่งที่ฉันพบ:
ในPython sourceสำหรับdatetimeและtimeสตริงSTRFTIME_FORMAT_CODESบอกเรา:
"Other codes may be available on your platform.
See documentation for the C library strftime function."
ดังนั้นถ้าเราman strftime(ในระบบ BSD เช่น Mac OS X) คุณจะพบการสนับสนุนสำหรับ%s:
"%s is replaced by the number of seconds since the Epoch, UTC (see mktime(3))."
อย่างไรก็ตามนั่นเป็นสาเหตุที่%sทำงานบนระบบที่ใช้ แต่มีวิธีแก้ไขปัญหาของ OP ที่ดีกว่า (ซึ่งคำนึงถึงเขตเวลาด้วย) ดูคำตอบที่ยอมรับของ @ abarnert ที่นี่