2010/05/03

[Python]その1:日付関連(年月日)

モジュールありまくりの言語で、一筋縄ではいかないPythonですが、日付をどうやって表現すればいいのかなーっとちょっと調査してみることに。

まずは、単純に日付を表示ところから。

sysdateを表示するには、

import datetime
print datetime.date.today()
#2010-04-28と表示される

以後、めんどいので、

from datetime import *

と書いておくことで、さっきのprint文は、このように書き換えることができます。

print date.today()

ここまでできると、次は、to_cahr(sysdate,'yyyymmdd')のようにできないのかなーっと淡い期待がちらほらと。

print date.today().strftime("%Y%m%d")
#20100428と表示される

フォーマットはこちらを参考にしました。

ちょっと冗長な感じもするので、↓のように書き換えてもオッケーです。
temp_date = date.today()
print temp_date.strftime("%Y%m%d")
#20100428と表示される

今、ひらめいたんだけど、ここまでの処理をしてくれる関数を作れば便利なんじゃーないかと。

で、作ってみる。
def getToday():
temp_date = date.today()
return temp_date.strftime("%Y%m%d")

実験してみる。
hoge = getToday()
print hoge
#20100428

きちんと動作しました。

たた唯一納得がいかない点が、一回、一回、モジュールをインポートする文を書かなくちゃーいけないこと。

ファンクションの中に、入れることができないのかなーっと。

色々と試行錯誤をした結果、モジュールをインポートする際に、from ・・・ import・・・を使うと関数使用時にエラーが発生してしまうので、このようにすることで落ち着きました。
def getToday():
import datetime
temp_date = datetime.date.today()
return temp_date.strftime("%Y%m%d")

fromを使わずに、importだけ書けば、わざわざ関数を使うためだけに、モジュールをインポートする必要はなくなるのかなと。

今回は、sysdateの日付を得るのに特化したエントリーになってしまったので、次回は、任意の日付に関するエントリーを書いてみたいと思います。

0 コメント:

コメントを投稿