如何在 python 中将普通时间戳转换为纪元时间戳

Posted

技术标签:

【中文标题】如何在 python 中将普通时间戳转换为纪元时间戳【英文标题】:How can I Convert Normal timestamp to Epoch Timestamp in python 【发布时间】:2021-05-10 18:42:18 【问题描述】:

问题 1: 将人类可读的日期转换为一天开始时的纪元时间戳/时间? 例子。 如果 INPUT 日期是 21-01-2020,则在一天开始时打印纪元时间,即 12:00 AM 状况: 日期限制:01-01-1970 至 输入说明: 输入日期将采用以下任一格式。

    dd/mm/yyyy mm/dd/yyyy dd-mm-yyyy mm-dd-yyyy dd.mm.yyyy mm.dd.yyyy ddmmyyyy mmddyyyy

输出说明: 对于上述所有类型的输入日期,输出应为 Epoch 时间戳/时间。

问题 1 – 日期到纪元时间戳

例外情况: 必须处理给定格式以外的任何输入日期,并显示消息“无法转换 提供的日期”必须打印出来。

更多例子:

示例 1 输入:2020 年 1 月 19 日 输出:1579392000

示例 2 输入:31122012 输出:1356912000

示例 3 输入:251220202 输出:无法转换提供的日期

示例 4 输入:17:04:2020 输出:无法转换提供的日期

【问题讨论】:

请从intro tour 重复on topic 和how to ask。 “告诉我如何解决这个编码问题”is off-topic for Stack Overflow。您必须make an honest attempt at the solution,然后询问有关您的实施的具体问题。 问题(我的意思是家庭作业)应该提供有关输入时区的信息 - 否则,结果会模棱两可,因为 Python 将原始日期时间视为本地时间。 【参考方案1】:
from datetime import datetime
import re

my_input = input("Enter date: ")
my_input = re.sub("/", "-", my_input)
my_input = re.sub(".", "-", my_input)

try:
    out = datetime.strptime(my_input, "%d-%m-%Y").timestamp()
except Exception:
    try:
        out = datetime.strptime(my_input, "%d%m%Y").timestamp()
    except Exception:
        out = "Unable to convert the provided date"

print(out)

    

【讨论】:

由于没有为输入提供时区信息,此代码的结果将取决于您运行它的机器的时区设置。 取决于输入时区。想要更改时区?

以上是关于如何在 python 中将普通时间戳转换为纪元时间戳的主要内容,如果未能解决你的问题,请参考以下文章

如何在 kotlin 中将纪元时间戳转换为 unix 十六进制时间戳?

如何在 python 中将 1970 年前的日期转换为纪元? [复制]

如何在 JAVA 中将纪元转换为 mySQL 时间戳

在Java中将ISO 8601时间戳字符串转换为纪元秒[重复]

如何在 Teradata 中将纪元时间转换为人类可读

如何在python中将日期转换为纪元时间[重复]