python自制api(帆雨工坊故事Python笑话)
python自制api(帆雨工坊故事Python笑话)倒霉的我最后才去检查timestamp()适用的日期范围。OSError: [Errno 22] Invalid argument于是,我就去检查python的版本、阅读datetime的文档等,明明没错啊,怎么回事呢?使用datetime模块:import datetime str='2022-09-29 21:00:00' temp=datetime.datetime.strptime(str '%Y-%m-%d %H:%M:%S') print(temp.timestamp())这样就可以了,调试的时候很顺利。然而,实际运行的时候就报错了:
我闹了个笑话。
为了实现某个动画的一些效果,需要编个小小的程序,里面有个功能是将日期时间转换为时间戳。
简单讲,就是把字符串“2022年9月29日 21点00分”转换为一个数字。
这是很简单的一个功能,几行代码就能实现。
使用datetime模块:
import datetime
str='2022-09-29 21:00:00'
temp=datetime.datetime.strptime(str '%Y-%m-%d %H:%M:%S')
print(temp.timestamp())
这样就可以了,调试的时候很顺利。
然而,实际运行的时候就报错了:
OSError: [Errno 22] Invalid argument
于是,我就去检查python的版本、阅读datetime的文档等,明明没错啊,怎么回事呢?
倒霉的我最后才去检查timestamp()适用的日期范围。
在程序中处理的日期是1935年2月10日,而timesstamp()能处理的时间不得早于1970年1月1日。
其实我是知道有这么一个起始的时间的,但我懒得记数字,又觉得自己应该不会去处理过去的时间,因此在大脑的记忆里就用“很早的时间”代替了“1970年1月1日”。
这是一个不规范的操作,并在若干年后给我带来了麻烦,浪费了大概1个小时的时间。
timestamp(时间戳)也称为Unix时间 或 POSIX时间,表示从格林尼治时间1970年1月1日8时0分0秒(不同编程语言略有不同)开始到现在所经过的毫秒数(有的编程语言是秒数)。