将可读日期转换为时间戳,时间戳到大纪元时间(1970年1月1日)之前的可读日期

时间:2018-03-02 16:33:19

标签: python

我制作了一个简单的函数,它将日期转换为时间戳和时间戳到目前为止。然而,问题是,如果时间戳为负且日期在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

0 个答案:

没有答案