如何在 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 年前的日期转换为纪元? [复制]