Python標準ライブラリに含まれる。
- コンストラクタ
day = datetime.date(year, month, day) #年月日を整数で指定 daytime = datetime.datetime(year, month, day[, hour[, minute[, second]]]) #年月日と時刻を指定
- メソッド
date/datetime.today() | 今日の日付 |
---|---|
datetime.now() | 現在のローカルな時刻 |
datetime.utcnow() | 現在のUTCでの時刻 |
date/time/datetime.replace() | year=やhour=のようにして特定の日付や時間を変更したオブジェクトを返す |
strftimeメソッドを使う。
書式指定はドキュメントを参照。主なものは
date/time/datetime.strftime(format) | 指定したフォーマットで変換された文字列を返す。 |
---|
%Y | 西暦を4ケタで |
---|---|
%y | 西暦を下2ケタ |
%m | 月を10進数表記 |
%b | 月を文字短縮表記 |
%B | 月を文字表記 |
%d | 日にちを10進数表記 |
%H | 時間を24時間式で10進数表記 |
%M | 分を10進数表記 |
%S | 秒を10進数表記 |
- 例
>>> date = datetime.datetime(1979,6,30) >>> date.strftime('%Y-%m-%d %H:%M:%S') '1979-06-30 00:00:00'
strptimeメソッドを使う。dateutil.parserクラスを使う方法もある。
>>> datetime.datetime.strptime('1979-06-01 00:00:00','%Y-%m-%d %H:%M:%S') datetime.datetime(1979, 6, 1, 0, 0)
環境によってはstrftime()で%b等で英語表記にしようとすると日本語になってしまう。
(追記: 2013.4.26)
PCの使用可能なロケールに依存してしまうので、localeによる設定は汎用性がないかもしれないので、次のようなモジュールを作って利用するのがよさそう。
import locale locale.setlocale(locale.LC_ALL,'en_US')でロケールを変更する。
(追記: 2013.4.26)
PCの使用可能なロケールに依存してしまうので、localeによる設定は汎用性がないかもしれないので、次のようなモジュールを作って利用するのがよさそう。
from datetime import datetime from dateutil.relativedelta import relativedelta __months__ = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'] def d2s(d, fmt='%HZ%d%b%Y'): if not isinstance(d, datetime): raise TypeError, "input must be datetime.datetime obejct" fmt = fmt.replace('%b', __months__[d.month-1]) if d.year < 1900: fmt = fmt.replace('%Y', '{:04d}'.format(d.year)) d = d + relativedelta(year=1900) return d.strftime(fmt)関数d2sを呼び出して、
>>> d2s(datetime(2009,10,13,12)) '12Z13OCT2009' >>> d2s(datetime(2009,10,13,12), fmt='%H:%MZ:%d%b%Y') '12:00Z13OCT2009'
最新コメント