我制作了一个简单的函数,它将日期转换为时间戳和时间戳到目前为止。然而,问题是,如果时间戳为负且日期在1970年1月1日之前甚至是1970年1月1日,它就无效。你能帮帮我吗?我找不到任何与此相关的消息来源。我可以用原始MySQL解决这个问题,但我现在正在使用pyDAL,所以我别无选择,只能用Python来计算这些转换。
import datetime
import time
def date(timestamp):
return datetime.datetime.utcfromtimestamp(int(timestamp)) \
.strftime('%d %B %Y')
def timestamp(date):
return int(time.mktime(
datetime.datetime.strptime(date, '%d %B %Y').timetuple()))
print(date('0'))
# 01 January 1970
print(date('-839939'))
# OSError: [Errno 22] Invalid argument
print(timestamp('31 December 1969'))
# OverflowError: mktime argument out of range
print(timestamp('1 January 1970'))
# OverflowError: mktime argument out of range
print(timestamp('2 January 1970'))
# 57600