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
  • 59 follow us in feedly

関連記事

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

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

記事を読む

no image

JAVA の SHA1 Digestの作り方

>>> import base64 >>> import hashlib >>> base64.b64encode(

記事を読む

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

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

記事を読む

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

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

記事を読む

PythonのThreadを待機させるか、必要の度に作成するのかのベンチマーク比較

QueueとThreadのベンチマーク比較 2つのケースについて比較検証してみました。 実際に処理する内

記事を読む

vim-slime を使って VIM の内容をコンソールに送信

この記事はVim Advent Calendar 2016の20日目の記事です。 選択行の内容をコンソールに送信

記事を読む

CPP extension vs Cython vs CPython on calculating the mean of numpy array

I'd like to get any feedback to make cython faster like

記事を読む

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

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

記事を読む

絶対ダメ! マルチスレッドでの共通変数のインクリメント演算

デバッグ中の発見 とあるマルチスレッドプログラムをPythonで書いていた際に遭遇した誤使用です。C/C++等

記事を読む

話題のクローラー・スクレイピング!PythonならScrapyが超優秀な件

Rubyの読書会に行ったら、Pythonの面白いお話を聞けたというお話です。 Rubyクローラー本の読書会に参

記事を読む

Message

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

Adsense

Python での Log 収集

プロジェクトが大きくなるにつれて、プログラムの不備を見つけるのにログの構成、ログデザインを考える

Flast-Sockets + redis-py で簡単 Websocket サーバー実装

参考にしたサイト Using WebSockets on Heroku with Python

Rust で Python の拡張ライブラリ作成 と numpy との性能比較

この記事は Python Advent Calendar 5日目の記事です。遅れてすみません。

システムトレードを始める前に知っておきたかったこと

今日の勉強会で発表してきました。nbviewer に共有しておきます。 システムトレードを始め

chmod で やらかしてしまったときの対処法

メモ書きです。 find | xargs とかを普通にやってしまうと、すぐに argument

→もっと見る

PAGE TOP ↑