Wizard In The Market
システムトレードの魔術師

*

まだ Python の datetime で消耗しているの? maya 使おうぜ

公開日: : 最終更新日:2016/12/24 Python , ,

15988833812_4d0e1d04e9_b

Photo by Daniel Mennerich


この記事は Python Advent Calendar 2016 の 24日目の記事です。

当初は SCOOP についての記事を書きたくて、ひたすら SSH 使った分散処理の実行を試していたのですが、一向に動きそうな気配がなく間に合いそうにないため、最近見つけたライブラリの紹介にさせてもらいます。SCOOPでSSH使って動かせた人、救いの手を差し伸べていただければ嬉しいです。

Python の Datetime のここがいけてない

datetime と time の親和性が低い

Python の Datetime 型って time との親和性が全然いけてない。Datetime 型から Unixtimpstamp を得たかったら、こんないけてないコードを書かないといけない。

timetupleなんてメソッド、かっこ悪くないですか。しかも、このままだと小数点以下の秒数は省略されてしまうので、d.microsecondを計算に加えなければいけなかったりで、とても不便。その点、RubyのTimeはすごく使いやすいですよね。timeからdatetimeへは datetime.datetime.fromtimestamp を呼べばなんとかなるのですが。

個人的には、timeモジュールとdatetimeモジュールは一本化してほしい、timeモジュールの存在価値はよくわかるので、datetime側ですべてラップして欲しいと思っていました。

パースメソッドがない

いちいち datetime.datetime.strptime メソッドで時間フォーマットを書かないといけない。 dateparser というモジュールもあるが、 datetime とは別モジュールだし、使い勝手がいまいち。

タイムゾーンの処理

タイムゾーンの管理が環境依存なところ。忘れた頃に嵌まります。

Maya を使おう

Maya のここが良い

  • タイムゾーンの管理が優秀
  • ISO 8601 と RFC 2822 の両方の相互切り替えに完全に対応
  • 文字列のパースが素敵
  • Slang的な日時の出力もできる
  • Datetime型への切り替えが容易
  • 1970年からのepoch time を基準に作られているが、1970年以前にも対応済み

個人的な理解では、epoch time で管理してくれていて、Datetime的な出力を容易にしてくれるイメージです。Maya って名前ですが、マヤ暦とはまったく関係がなさそう。

インストール

いつもの pip で入ります。

使い方

strftimeとかは一度datetimeをくぐらせないと使えないです。必要になればdatetimeを呼ぶと良さそうです。

まとめ

maya を使えば、ecpoch time を基準としたタイムゾーンの切り替えにも対応したDatetime型を使えます。これで、Unix Timestamp とかの処理で困ることは減りそうです。Pandas とかでも使えたらいいのになぁ。

にほんブログ村 為替ブログへ 
Fx-Kirin

About Fx-Kirin

2009年10月にFXを開始、翌年2010年5月から脱サラをしてFX業界に専念。 2012年10月頃から本格的に勝ち始め、一月で資産を倍にする、2年半月間負けなし等、安定した収支で2013年11月に生涯FX収支が1億を超える。 投資スタイルはシステムトレード。プログラミングの知識がほぼない状態から、独学で自分がしたいと思うことであればほぼ実現することが可能なレベルまで成長。好きな言語はRuby, Python。必要となればC++からVBA、Pascal等なんでも行う。MT4/MT5のプログラミングも得意。 2011年にはFXで稼いだ資金をもとにシンガポールに移住し、留学も兼ねて起業をチャレンジするほど、ビジネスを興すことに熱意がある。国内の業者を主に使い始めたことから、2012年に帰国。零細株式会社経営中。

Adsense

  • このエントリーをはてなブックマークに追加
  • Pocket
  • 63 follow us in feedly

関連記事

Python の超お手軽のネットワーク分散コンピューティングライブラリSCOOP

SCOOPとは ssh とPython の設定を適切にするだけで、簡単にネットワーク間での分散処理が実行できる。

記事を読む

Pythonで簡単に画像検出でLinux GUI操作自動化ライブラリを作ったよ

[2015/02/07 追記] [bm url="http://fx-kirin.com/python

記事を読む

ipdb だけではなく IPython.embed も使おう

ipdb だと複数行の挿入ができなかったりするが、その問題が解消される。明らかにこちらのほうが使い勝手がいい。行のデ

記事を読む

Pythonで簡単自動化!PyAutoGuiが便利すぎて感動したのでご紹介

以前こんな記事を書いていたのですが、これがまったく不要になるとても便利なPython Libraryがあった

記事を読む

重回帰分析による米雇用統計の予測モデルを作成してみる

この記事はPython その2 Advent Calendar 2015 の17日目の記事です。 1 はじめに

記事を読む

Interactive Brokers 証券の Python API を利用する

Interactive Brokers 証券とは 日本には珍しく自動売買プラットフォームが提供されいてる証券会社です。

記事を読む

VimでPythonのIDE 環境を一から構築する

追記 これ見ておいたほうがいいかも。 Vimを最強のPython開発環境にする2 - Λlisue's blog

記事を読む

Python での ポートフォリオの計算

Python でのポートフォリオの計算 ポートフォリオの計算について色々調べてみた。とりあえず使いたいって人はpo

記事を読む

Derivatives analytics with Python の学習ノート 1,2章

洋書を読んでいると、いつも読んだ気になってちゃんと理解出来てるか自信がないことが多いので、チャプターごとに要点をまとめ

記事を読む

PythonでsleepしているThreadを呼び起こすプラクティス

Pythonのsleep中のThreadをWake up PythonのThreadにて、RubyのThr

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Adsense

Windowsユーザ御用達の uci.edu から直接python wheelをインストールしてくれるライブラリ pipwin

あんまり情報が出てこないのでメモ書き。 https://twitter.com/fx_kiri

Python2 から Python3 へのC Extension の移行

最初に追加 モジュールの初期化と状態情報を書き換える initmyextension 関

Interactive Brokers 証券の Python API を利用する

Interactive Brokers 証券とは 日本には珍しく自動売買プラットフォームが提供され

Python Pandas からお手軽に highcharts が使える kanichart 作りました。

Kanichart fx-kirin/kanichart: Easy(簡易) plotting

Python 2, Python 3 で更新したファイルを調べてreloadするパッケージを作った。

pdbでのデバッグにはreload機能がない IPythonには優秀なautorelaod機能

→もっと見る

PAGE TOP ↑