Pythonの日時モジュール大全

32985 ワード

timeタイムモードが速い
1、timeモジュールでは、タイムスタンプ、フォーマット日付時間文字列、構造化日付時間の3つの表現形式で時間を表すことができます.
1.1、タイムスタンプtime.time()
print(time.time())

>>> 1596522366.8774376

タイムスタンプは、1970年1月1日の真夜中(暦)からどのくらいの時間が経過したかで、日付演算に最適であることを示しています.
1.2、日付時刻文字列timeをフォーマットする.strftime()
print(time.strftime('%Y-%H-%m %X'))

>>> 2020-14-08 14:30:57

%aローカル曜日名の略記%Aローカル曜日名のフルネーム%bローカル月名の略記%Bローカル月名のフルネーム%cローカル対応する日付表示と時間表示%d 1ヶ月目の日付(01-31)%fマイクロ秒(範囲0.9999999)%H 1日目の小時間(0-23)%I数時間目(12時間制、01-12)%j 1年の日付(001-366)%m月(01-12)%M分(00-59)%pローカルA.M.またはP.Mの識別子%S秒数(00-59)%U 1年の曜日.(00-53日曜日は1週間の開始)%w 1週間目の数日目(0-6、0は日曜日)%Wと%Uはほぼ同じで、異なるのは%Wが月曜日を1週間の開始とする.%xローカル対応日%Xローカル対応時間%y 2桁の年表示(00-99)%Y 4桁の年表示(000-9999)%zとUTC時間の間隔(ローカル時間であれば空の文字列を返す)%Zタイムゾーンの名前(ローカル時間であれば空の文字列を返す)%
1.3、構造化日時または時間元祖と呼ばれ、timeを通過する.localtime()取得
# time.localtime(time.time())
print(time.localtime())
>>> time.struct_time(tm_year=2020, tm_mon=8, tm_mday=4, tm_hour=14, tm_min=46, tm_sec=54, tm_wday=1, tm_yday=217, tm_isdst=0)

ツールバーの

tm_year

tm_mon

tm_mday

tm_hour

tm_min

tm_sec

tm_wday
0~6(0は月曜日)
tm_yday
一年の何日目
tm_isdst
サマータイムかどうか(-1,0,1,-1はサマータイムかどうかを決める旗)
2、timeモジュールのその他の基本的な使用方法
#                   。                 (   ,    )。            。
time.altzone
#                  "Tue Dec 11 18:07:14 2008"(2008 12 11    18 07 14 ) 24       
time.asctime([tupletime])
#          ,t   。
time.sleep(t)
#                CPU  。           , time.time()   。
time.clock( )
#      asctime(localtime(secs)),       asctime()
time.ctime([secs])
#                       t
time gmtime()
#             ,  struct_time      ,              
time.mktime(tupletime)
#        ,                ,   fmt  。
time.strftime(fmt[,tupletime])
# time.strftime()       
time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')
#       TZ           。 
time.tzset()

datatimeモジュール
Datetimeモジュールは、日付と時間を操作するためのクラスを提供します.日付と時間アルゴリズムはサポートされていますが、出力フォーマットと操作のために属性を効率的に抽出することに重点を置いています.
1.timeクラス
datetime.time(hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] )
import datetime

t = datetime.time(11, 12, 13)
print(t)  #time  
print(t.hour)    #  
print(t.minute)  #  
print(t.second)  #  
print(t.microsecond)   #   
print(t.microsecond)   #   
print(t.isoformat())   #     "HH:MM:SS"        
print(t.strftime("%X"))   # 11:12:13

2、dataクラス
datetime.date(year, month, day)
import datetime
print('date.max:', datetime.date.max)  #        ;
print('date.min:', datetime.date.min)  #        ;
print('date.resolution:', datetime.date.resolution)  #          。     
print('date.today:', datetime.date.today())  #          date  
print('date.fromtimestamp:', datetime.date.fromtimestamp(time.time()))  #         ,    date  

today = datetime.date.today()
print(today)  #   、 、 ;
print(today.year) #  
print(today.month) #  
print(today.day)  #  
print(today..timetuple())  #        time.struct_time  ;
print(today.replace(year, month, day))  #           ,       , ,           
print(today.weekday())  #    ,  1;  2,  2
print(today.isocalendar())   #      (year,month,day)   
print(today.isoformat())   #      'YYYY-MM-DD’    
oday.strftime("%Y")   # 2020

3、datetimeクラス
datetime.datetime (year, month, day[ , hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] )
import datetime
#              datetime  ;
print(datetime.datetime.today())
#              datetime  
print(datetime.datetime.now())
#          
print(datetime.datetime.max)
#          
print(datetime.datetime.min)
#          
print(datetime.datetime.resolution)
#       utc   datetime  ;#      
print(datetime.datetime.utcnow())
#          datetime  
print(datetime.datetime.fromtimestamp(time.time()))
#          datetime  
print(datetime.datetime.utcfromtimestamp(time.time()))
#   date time,    datetime  ;
print(datetime.datetime.combine(datetime.date.today(), datetime.time()))

4、timedelta類
時間の増減に使用
now_time=datetime.datetime.now()
print(now_time.strftime("%Y-%m-%d %H:%M:%S"))
print((now_time+datetime.timedelta(days=- 10)).strftime("%Y-%m-%d %H:%M:%S")) #     
print(now_time.strftime("%Y-%m-%d %H:%M:%S"),(now_time+datetime.timedelta(minutes=+1)).strftime("%Y-%m-%d %H:%M:%S"))   #        
print(now_time.strftime("%Y-%m-%d %H:%M:%S"),(now_time+datetime.timedelta(minutes=+1/60)).strftime("%Y-%m-%d %H:%M:%S"))#      
print ((now_time+datetime.timedelta(hours=-1)).strftime("%Y-%m-%d %H:%M:%S")) #      

5、tzinfo類
時差ぼけ
class UTC(datetime.tzinfo):
    """UTC"""

    def __init__(self, offset=0):
        self._offset = offset

    def utcoffset(self, dt):
        return datetime.timedelta(hours=self._offset)

    def tzname(self, dt):
        return "UTC +%s" % self._offset

    def dst(self, dt):
        return datetime.timedelta(hours=self._offset)


#     
beijing = datetime.datetime(2011, 11, 11, 0, 0, 0, tzinfo=UTC(8))
print("beijing time:", beijing)
#     
bangkok = datetime.datetime(2011, 11, 11, 0, 0, 0, tzinfo=UTC(7))
print("bangkok time", bangkok)
#           
print("beijing-time to bangkok-time:", beijing.astimezone(UTC(7)))

timespan = beijing - bangkok
print("  :", timespan)

Calendarモジュール
カレンダーは、月曜日がデフォルトの週1日目、日曜日がデフォルトの最終日です.設定を変更するにはcalendarを呼び出す必要があります.setfirstweekday()関数.
#             year   ,3    ,     c。        w  。     21* W+18+2* C。l      
print(calendar.calendar(2019,w=2,l=1,c=6))
#              。  0,    。
print(calendar.firstweekday( ))
#       True,    false。
print(calendar.isleap(2008))
#             
print(calendar.leapdays(2008, 2015))
#                    ,     0(   )  6(   )
print(calendar.monthrange(2020, 8))
#             year month   ,    ,    。       w  。      7* w+6。l       。
print(calendar.month(2020, 8, w=2, l=1))
#              。                。Year month        0;               , 1  。
print(calendar.monthcalendar(2020, 8))
#     print (calendar.calendar(year, w=0, l=0, c=6, m=3))
calendar.prcal(year, w=0, l=0, c=6, m=3)
#     print(calendar.month(theyear, themonth, w=0, l=0))。
calendar.prmonth(theyear, themonth, w=0, l=0)
#           。0(   ) 6(   )。
calendar.setfirstweekday(weekday)
#  time.gmtime  :          ,         
calendar.timegm(tupletime)
#           。0(   ) 6(   )。    1(  )   12(12 )
calendar.weekday(year,month,day)