home changes contents help options

193:現在の日時を調べる

日付を取るにはdatetime.dateを使います。

 >>> from datetime import date 
 >>> now = date.today() 
 >>> now 
 datetime.date(2003, 12, 2) 
 >>> now.strftime("%m-%d-%y or %d%b %Y is a %A on the %d day of %B") 
 '12-02-03 or 02Dec 2003 is a Tuesday on the 02 day of December' 
 >>> import datetime
 >>> now =datetime.datetime.now()
 >>> now
 datetime.datetime(2011, 11, 10, 14, 20, 1, 427000)
 >>> now.strftime("%Y/%m/%d %H:%M:%S")
 '2011/11/10 14:20:01'

生まれてから今日までの日数を数えます

 >>> birthday = date(1964, 7, 31) 
 >>> age = now - birthday 
 >>> age.days 
 14368

timeモジュールで時間が取れます

 >>> import time
 >>> time.ctime()
 'Mon Feb 13 16:22:14 2006'
 >>> time.gmtime()
 (2006, 2, 13, 7, 22, 21, 0, 44, 0)
 1970年からの秒数です。
 >>> time.time()
 1139815346.109

異なったタイムゾーンでの時間の取得

pytzモジュール をeasy_installで入れます。

 # easy_install --upgrade pytz
 >>> import pytz
 >>> import datetime
 >>> print pytz.common_timezones
     ['Africa/Abidjan', 'Africa/Accra', ------ , 'Asia/Tokyo', ------,  'US/Pacific', 'UTC']
 >>> print pytz.country_timezones
     {u'BD': [u'Asia/Dhaka'], u'BE': [u'Europe/Brussels'],-----, u'JP': [u'Asia/Tokyo'],---,u'MZ': [u'Africa/Maputo']}

 >>> JST = pytz.timezone('Asia/Tokyo')
 JSTで今の時間
 >>> datetime.datetime.now()
 datetime.datetime(2012, 7, 31, 21, 37, 44, 631982)
 >>> datetime.datetime.now(JST)
 datetime.datetime(2012, 7, 31, 21, 37, 50, 296193, tzinfo=<DstTzInfo 'Asia/Tokyo' JST+9:00:00 STD>)
 UTCの今の時間
 >>> datetime.datetime.now(pytz.timezone('UTC'))
 datetime.datetime(2012, 7, 31, 12, 38, 20, 650790, tzinfo=<UTC>)

 >>> jst_time = datetime.datetime(2012,7,31,21,37,tzinfo=JST)
 >>> jst_time
 datetime.datetime(2012, 7, 31, 21, 37, tzinfo=<DstTzInfo 'Asia/Tokyo' CJT+9:00:00 STD>)
 UTCへの変換
 >>> jst_time.astimezone(pytz.timezone('UTC'))
 datetime.datetime(2012, 7, 31, 12, 37, tzinfo=<UTC>)