PythonとJavaScriptのDateのやり取りで困ったことを書いてみる。
PythonのdatetimeとJavaScriptのDateのやり取りにかなり苦労した。
最終的に以下のようなコードができた。
うまくいっているのかがよくわからない。
なかなか思ったような処理にならない。難しい。最後はtzlocalモジュールを使用してつじつま合わせをしている。
from datetime import datetime, timedelta, timezone
from tzlocal import get_localzone
import pytz
import time
#tstr = '2016-11-29T10:00:30Z'
def fromtstr(tstr):
try:
tdatetime = datetime.strptime(tstr, '%Y-%m-%dT%H:%M:%S.%fZ').replace(tzinfo=timezone.utc);
except:
tdatetime = datetime.strptime(tstr, '%Y-%m-%dT%H:%M:%SZ').replace(tzinfo=timezone.utc);
return tdatetime;
def valueOf(datetime):
return int(time.mktime(datetime.timetuple())*1e3 + datetime.microsecond/1e3);
def fromValue(value):
tz = get_localzone() # local timezone
d = datetime.now(tz) # or some other local date
utc_offset = d.utcoffset().total_seconds()
epoch = datetime(1970, 1, 1).replace(tzinfo=timezone.utc)
val = epoch + timedelta(milliseconds=value+utc_offset*1000)
return val;