Python常用模組 Datetime模組

2021-10-06 17:22:26 字數 4829 閱讀 5911

1、date類

datetime.date(year, month, day)

靜態方法和字段

date.

max、date.

min:date物件所能表示的最大、最小日期;

date.resolution:date物件表示日期的最小單位。這裡是天。

date.today(

):返回乙個表示當前本地日期的date物件;

date.fromtimestamp(timestamp):根據給定的時間戮,返回乙個date物件;

方法和屬性

d1 = date(

2011,06

,03)#date物件

d1.year、date.month、date.day:年、月、日;

d1.replace(year, month, day):生成乙個新的日期物件,用引數指定的年,月,日代替原有物件中的屬性。(原有物件仍保持不變)

d1.timetuple(

):返回日期對應的time.struct_time物件;

d1.weekday(

):返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此類推;

d1.isoweekday(

):返回weekday,如果是星期一,返回1;如果是星期2,返回2,以此類推;

d1.isocalendar(

):返回格式如(year,month,day)的元組;

d1.isoformat(

):返回格式如'yyyy-mm-dd』的字串;

d1.strftime(fmt):和time模組format相同。

2、time類

datetime.time(hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] )

靜態方法和字段

time.

min、time.

max:time類所能表示的最小、最大時間。其中,time.

min= time(0,

0,0,

0), time.

max= time(23,

59,59,

999999

);time.resolution:時間的最小單位,這裡是1微秒;

方法和屬性

t1 = datetime.time(10,

23,15)

#time物件

t1.hour、t1.minute、t1.second、t1.microsecond:時、分、秒、微秒;

t1.tzinfo:時區資訊;

t1.replace(

[ hour[

, minute[

, second[

, microsecond[

, tzinfo]]]

]]):建立乙個新的時間物件,用引數指定的時、分、秒、微秒代替原有物件中的屬性(原有物件仍保持不變);

t1.isoformat(

):返回型如"hh:mm:ss"格式的字串表示;

t1.strftime(fmt):同time模組中的format;

3、datetime類

datetime相當於date和time結合起來。

datetime.datetime (year, month, day[ , hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] )

靜態方法和字段

datetime.today(

):返回乙個表示當前本地時間的datetime物件;

datetime.now(

[tz]

):返回乙個表示當前本地時間的datetime物件,如果提供了引數tz,則獲取tz引數所指時區的本地時間;

datetime.utcnow(

):返回乙個當前utc時間的datetime物件;#格林威治時間

datetime.fromtimestamp(timestamp[

, tz]

):根據時間戮建立乙個datetime物件,引數tz指定時區資訊;

datetime.utcfromtimestamp(timestamp):根據時間戮建立乙個datetime物件;

datetime.combine(date, time):根據date和time,建立乙個datetime物件;

datetime.strptime(date_string,

format

):將格式字串轉換為datetime物件;

方法和屬性

dt=datetime.now(

)#datetime物件

dt.year、month、day、hour、minute、second、microsecond、tzinfo:

dt.date(

):獲取date物件;

dt.time(

):獲取time物件;

dt. replace (

[ year[

, month[

, day[

, hour[

, minute[

, second[

, microsecond[

, tzinfo]]]

]]]]

]):dt. timetuple (

)dt. utctimetuple (

)dt. toordinal (

)dt. weekday (

)dt. isocalendar (

)dt. isoformat (

[ sep]

)dt. ctime (

):返回乙個日期時間的c格式字串,等效於time.ctime(time.mktime(dt.timetuple())

);dt. strftime (

format

)

4.timedelta類,時間加減

使用timedelta可以很方便的在日期上做天days,小時hour,分鐘,秒,毫秒,微妙的時間計算,如果要計算月份則需要另外的辦法。

#coding:utf-8

from datetime import

*dt = datetime.now(

)#日期減一天

dt1 = dt + timedelta(days=-1

)#昨天

dt2 = dt - timedelta(days=1)

#昨天dt3 = dt + timedelta(days=1)

#明天delta_obj = dt3-dt

print

type

(delta_obj)

,delta_obj#1 day, 0:00:00

print delta_obj.days ,delta_obj.total_seconds(

)#1 86400.0

5、tzinfo時區類

#! /usr/bin/python

# coding=utf-8

from datetime import datetime, tzinfo,timedelta

"""tzinfo是關於時區資訊的類

tzinfo是乙個抽象類,所以不能直接被例項化

"""class

utc(tzinfo)

:"""utc"""

def__init__

(self,offset =0)

: self._offset = offset

defutcoffset

(self, dt)

:return timedelta(hours=self._offset)

deftzname

(self, dt)

:return

"utc +%s"

% self._offset

defdst(self, dt)

:return timedelta(hours=self._offset)

#北京時間

beijing = datetime(

2011,11

,11,0

,0,0

,tzinfo = utc(8)

)print

"beijing time:"

,beijing

#曼谷時間

bangkok = 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

#output***************===

# beijing time: 2011-11-11 00:00:00+08:00

# bangkok time 2011-11-11 00:00:00+07:00

# beijing-time to bangkok-time: 2011-11-10 23:00:00+07:00

# 時差: -1 day, 23:00:00

python時間模組 time和datetime

python 中時間表示方法有 時間戳,即從1975年1月1日00 00 00到現在的秒數 格式化後的時間字串 時間struct time 元組。struct time元組中元素主要包括tm year 年 tm mon 月 tm mday 日 tm hour 時 tm min 分 tm sec 秒 ...

python 常用模組

1.告訴直譯器 找模組 import sysunix要絕度路徑 只有第一次匯入執行。name main 2.當做包,必須包含乙個命名為 init py的檔案 模組 3.dir看模組裡有什麼 下劃線開始,不是給模組外部用的。過濾 import copy n for n in dir copy if n...

python常用模組

logging 日誌是我們排查問題的關鍵利器,寫好日誌記錄,當我們發生問題時,可以快速定位 範圍進行修改 logging將日誌列印到螢幕,日誌級別大小關係為 critical error warning info debug notset,當然也可以自己定義日誌級別 預設logging預設的日誌級別...