#!/usr/bin/env python
# -*- coding: utf-8 -*-
from datetime import date, datetime, timedelta, timezone
from dateutil.relativedelta import relativedelta
import dataset
EST = timezone(timedelta(hours=-5), 'EST') # 東部標準時 UTC-5
EDT = timezone(timedelta(hours=-4), 'EDT') # 東部夏時間 UTC-4
def loadDb():
db = dataset.connect('sqlite:///data/database-fix.sqlite3')
table = db['history']
results = table.find()
for record in results:
startsAt = record["starts_at"] # UNIX時間が入っている 1566963623.107418 こんなの
startsDateTime = record["starts_date_time"] # 2019-08-27 23:40:23 こんなのが入っている
# starts_date_time が存在しない項目の場合
if startsDateTime is None:
# print(startsAt)
unixStartAt = int(float(startsAt)) # 開始時間 (UNIX時間)
fixStartsDateTime = datetime.fromtimestamp(unixStartAt, EDT) # 開始時間 (東部時間に変換)
fixStartsDateTime = str(fixStartsDateTime)[0:19] # 開始時間 (書式を整形)
data = dict(stats_at=startsAt, starts_date_time=fixStartsDateTime)
table.update(data, ['starts_at'])
print(f"追記しました: {fixStartsDateTime}")
# 存在する場合
else:
pass
# print(f"記入済み: {startsAt}")
if __name__ == '__main__':
loadDb()
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiMgLSotIGNvZGluZzogdXRmLTggLSotCgpmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRlLCBkYXRldGltZSwgdGltZWRlbHRhLCB0aW1lem9uZQpmcm9tIGRhdGV1dGlsLnJlbGF0aXZlZGVsdGEgaW1wb3J0IHJlbGF0aXZlZGVsdGEKaW1wb3J0IGRhdGFzZXQKCgpFU1QgPSB0aW1lem9uZSh0aW1lZGVsdGEoaG91cnM9LTUpLCAnRVNUJykgICAgICAgICAgICAgICAgICMg5p2x6YOo5qiZ5rqW5pmCIFVUQy01CkVEVCA9IHRpbWV6b25lKHRpbWVkZWx0YShob3Vycz0tNCksICdFRFQnKSAgICAgICAgICAgICAgICAgIyDmnbHpg6jlpI/mmYLplpMgVVRDLTQKCgpkZWYgbG9hZERiKCk6CiAgICBkYiA9IGRhdGFzZXQuY29ubmVjdCgnc3FsaXRlOi8vL2RhdGEvZGF0YWJhc2UtZml4LnNxbGl0ZTMnKQogICAgdGFibGUgPSBkYlsnaGlzdG9yeSddCiAgICByZXN1bHRzID0gdGFibGUuZmluZCgpCiAgICBmb3IgcmVjb3JkIGluIHJlc3VsdHM6CiAgICAgICAgc3RhcnRzQXQgPSByZWNvcmRbInN0YXJ0c19hdCJdICAgICAgICAgICAgICAgICAjIFVOSVjmmYLplpPjgYzlhaXjgaPjgabjgYTjgosgMTU2Njk2MzYyMy4xMDc0MTgg44GT44KT44Gq44GuCiAgICAgICAgc3RhcnRzRGF0ZVRpbWUgPSByZWNvcmRbInN0YXJ0c19kYXRlX3RpbWUiXSAgICAjIDIwMTktMDgtMjcgMjM6NDA6MjMg44GT44KT44Gq44Gu44GM5YWl44Gj44Gm44GE44KLCgogICAgICAgICMgc3RhcnRzX2RhdGVfdGltZSDjgYzlrZjlnKjjgZfjgarjgYTpoIXnm67jga7loLTlkIgKICAgICAgICBpZiBzdGFydHNEYXRlVGltZSBpcyBOb25lOgogICAgICAgICAgICAjIHByaW50KHN0YXJ0c0F0KQogICAgICAgICAgICB1bml4U3RhcnRBdCA9IGludChmbG9hdChzdGFydHNBdCkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg6ZaL5aeL5pmC6ZaTIChVTklY5pmC6ZaTKQogICAgICAgICAgICBmaXhTdGFydHNEYXRlVGltZSA9IGRhdGV0aW1lLmZyb210aW1lc3RhbXAodW5peFN0YXJ0QXQsIEVEVCkgICMg6ZaL5aeL5pmC6ZaTICjmnbHpg6jmmYLplpPjgavlpInmj5spCiAgICAgICAgICAgIGZpeFN0YXJ0c0RhdGVUaW1lID0gc3RyKGZpeFN0YXJ0c0RhdGVUaW1lKVswOjE5XSAgICAgICAgICAgICAgIyDplovlp4vmmYLplpMgKOabuOW8j+OCkuaVtOW9oikKICAgICAgICAgICAgZGF0YSA9IGRpY3Qoc3RhdHNfYXQ9c3RhcnRzQXQsIHN0YXJ0c19kYXRlX3RpbWU9Zml4U3RhcnRzRGF0ZVRpbWUpCiAgICAgICAgICAgIHRhYmxlLnVwZGF0ZShkYXRhLCBbJ3N0YXJ0c19hdCddKQogICAgICAgICAgICBwcmludChmIui/veiomOOBl+OBvuOBl+OBnzoge2ZpeFN0YXJ0c0RhdGVUaW1lfSIpCiAgICAgICAgIyDlrZjlnKjjgZnjgovloLTlkIgKICAgICAgICBlbHNlOgogICAgICAgICAgICBwYXNzCiAgICAgICAgICAgICMgcHJpbnQoZiLoqJjlhaXmuIjjgb86IHtzdGFydHNBdH0iKQoKCmlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICBsb2FkRGIoKQo=