win11 上で jupyter notebook 使っています。
import sys sys.version '3.8.12 (default, Oct 12 2021, 03:01:40) [MSC v.1916 64 bit (AMD64)]'
unix time のはじめの方を色々といじってみたところ、
import datetime datetime.datetime(1970, 1, 1, 0, 0, 0), datetime.datetime.fromtimestamp(0) >>(datetime.datetime(1970, 1, 1, 0, 0), datetime.datetime(1970, 1, 1, 9, 0))
こんな感じです。ここまでは中の時計の JST に合わせてくれているのだろうなと思うのでいいのですが、
datetime.datetime(1970, 1, 1, 9, 0, 0).timestamp() >>OSError: [Errno 22] Invalid argument
と出ます。wsl python3 だと 0.0 と返ってきます。*1
import datetime for d in range(1,3): for h in range(24): try: print(datetime.datetime(1970,1,d,h).timestamp()) except: print(f'1970/1/{d} {h}:00 error')
で調べてみると、
1970/1/1 0:00 error 1970/1/1 1:00 error 1970/1/1 2:00 error 1970/1/1 3:00 error 1970/1/1 4:00 error 1970/1/1 5:00 error 1970/1/1 6:00 error 1970/1/1 7:00 error 1970/1/1 8:00 error 1970/1/1 9:00 error 1970/1/1 10:00 error 1970/1/1 11:00 error 1970/1/1 12:00 error 1970/1/1 13:00 error 1970/1/1 14:00 error 1970/1/1 15:00 error 1970/1/1 16:00 error 1970/1/1 17:00 error 1970/1/1 18:00 error 1970/1/1 19:00 error 1970/1/1 20:00 error 1970/1/1 21:00 error 1970/1/1 22:00 error 1970/1/1 23:00 error 1970/1/2 0:00 error 1970/1/2 1:00 error 1970/1/2 2:00 error 1970/1/2 3:00 error 1970/1/2 4:00 error 1970/1/2 5:00 error 1970/1/2 6:00 error 1970/1/2 7:00 error 1970/1/2 8:00 error 86400.0 90000.0 93600.0 97200.0 100800.0 104400.0 108000.0 111600.0 115200.0 118800.0 122400.0 126000.0 129600.0 133200.0 136800.0
ですので、エラーが出なくなるのは 1970/1/2 の 9 時からです。マイクロセカンドまでは試してないのですが、1秒前まではだめでした。*2
個人的には現時点であまり不都合がないのですけれど、なんとなく試してみて気になったので。
Windowsでマイナス時間はエラーとあったのですが、なんで一日ずれるかなぁ。