【帆雨工坊故事】Python笑话
我闹了个笑话。
为了实现某个动画的一些效果,需要编个小小的程序,里面有个功能是将日期时间转换为时间戳。
简单讲,就算把字符串“2022年9月29日 21点00分”转换为一个数字。
这是很简单的一个功能,几行代码就能实现。

使用datetime模块:
这就可以了,调试的时候很顺利。
然而,实际运行的时候就报错了:
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秒(不同编程语言略有不同)开始到现在所经过的毫秒数(有的编程语言是秒数)。