将日期和时间转换为时间戳
问题描述:
我有一个文本文件,希望在Python中打开并获取日期和时间(在标题中),然后将其更改为秒(时间戳)。但结果与在线网站不一样。 代码:将日期和时间转换为时间戳
with open('sample for north - Kopie.txt', "r") as f:
content = f.readlines()
for x in content :
day = float (content [0][:2])
month = float (content [0][3:5])
year = float (content [0][6:10])
hour = float (content [0][10:13])
minn = float (content [0][14:16])
second = float (content [0][17:19])
time = float ((((year-1970)*31556926)+((month-1)*2629743)+((day-1)*86400)+((hour)*3600)+((minn)*60)+second))
为2015年7月13日计划的9时38分17秒结果是但网站结果是。
答
有两个部分:
-
转换时间字符串到Python中的时间对象。你可以使用
.strptime()
为:from datetime import datetime dt = datetime.strptime("13.07.2015 09:38:17", "%d.%m.%Y %H:%M:%S") # -> datetime.datetime(2015, 7, 13, 9, 38, 17)
-
转换时间对象为(POSIX)日期和时间(Unix时间)。
1436780297
结果表明,你输入的时间是UTC,因此你可以使用calendar.timegm()
获得时间戳:from calendar import timegm timestamp = timegm(dt.timetuple()) # -> 1436780297
什么是're'?此外,与文件相关的代码似乎与问题无关。你可以创建一个函数来处理一条线吗? –
你是否考虑了闰年等? –
@PeterWood我真的很抱歉。纠正。我刚刚发现网站说,每年是31556926秒,每个月是2629743秒......并且只是把它放在等式中。 – kian