【Django】datetime.dateで保存された値のUNIXマイクロ秒変換方法と並び替え

【Django】datetime.dateで保存された値のUNIXマイクロ秒変換方法と並び替え

【Django】datetime.dateで保存された値のUNIXマイクロ秒変換方法と並び替え

意外と苦戦しました。
中々いい情報を探し出すことが出来なかったからと言うのが一番の理由です。
と言う事で備忘録です。

まずは変換とグラフ作成の完成形です

SQLにDateで格納したカラムの操作ポイント

Django初心者の私が悩んだのは【取り出した値の姿形】でした。
Date形式で保存しているので、SQLを確認すると Y-m-d の姿で収まっています。

これをTemplateに送って展開するとこんな感じの表記になりました。

で、グラフづくりにテーブル内の全データは必要ないので一部取出して配列に入れて日付が逆順だとグラフが出来ないので並び替え。

配列に入れると datetime.date(Y, m, d) になってました。
となれば、datetimeをUNIXマイクロ秒に変換すればいいのでpythonのtime関数が使えます。

一度文字列に変換してからdatetime関数で再変換してunix時間に変換してる人とか色んな情報に出会いましたが、この方法が一番スッキリして理解しやすかったです。

int(time.mktime(変換するカラム.timetuple())*1000

最後の乗算は求められている値がマイクロ秒の時に行う処理で、秒までだったら不要です。

Djangoでの2次元配列の並び替え

2次元配列の並び替えについても ppritを使う方法等、いろんな情報がありましたが、これが一番シンプルでした。

並び変える配列.sort(key=itemgetter(参照する列番号))

ちなみに降順の場合はこちら。

並び変える配列.sort(key=itemgetter(参照する列番号),reverse=True)

reverse=Trueを書き加えるだけ。なんて楽なんだろう。
pythonのソート一覧の公式ページ

まとめ

今回は【unixtime変換】に苦労しました。

検索して調べるとdatetime関数で最初からタイムスタンプ取得して表示を変えるという例が多かった印象です。

まぁあまりマイクロ秒に変換したい人がいないって事かな。