python時(shí)間相關(guān)常用module和方法

1. time

class time.struct_time

? ? @ desc: 返回的時(shí)間值序列的類型為 gmtime() 、 localtime() 和 strptime() 。它是一個(gè)帶有 named tuple 接口的對(duì)象:可以通過(guò)索引和屬性名訪問(wèn)值。 存在以下值:

struct_time named tuple

? ? @ eg:

t_struct = localtime()

for x in t_struct:

? ? print(x)

print(t_struct.tm_zone)

print(t_struct.tm_gmtoff)


asctime([t])

? ? @param t: struct_time 默認(rèn)localtime(), 還可以傳入:gmtime()則是UTC時(shí)間

? ? @return str: 滿足C的struct_time格式的時(shí)間表達(dá)式。例如:'Wed Feb 22 15:59:17 2023'

ctime([secs])

? ? @desc: 等價(jià)于asctime(localtime(secs))

? ? @param secs: 即ts值,默認(rèn)是當(dāng)前ts并用local時(shí)區(qū)顯示, 沒(méi)有顯示時(shí)區(qū)設(shè)置,若要顯示UTC的struct_time字串,則需要+/-local時(shí)區(qū)與UTC時(shí)區(qū)相差的秒數(shù)

? ? @return str: 例如:'Wed Feb 22 15:59:17 2023'

gmtime([secs]), localtime([secs])

? ? @param secs: 即ts值,默認(rèn)是當(dāng)前ts并用local時(shí)區(qū)顯示, 沒(méi)有顯示時(shí)區(qū)設(shè)置,若要顯示UTC的struct_time字串,則需要+/-local時(shí)區(qū)與UTC時(shí)區(qū)相差的秒數(shù)

? ? @return struct_time: 例如:time.struct_time(tm_year=2023, tm_mon=2, tm_mday=22, tm_hour=8, tm_min=16, tm_sec=3, tm_wday=2, tm_yday=53, tm_isdst=0)

mktime(t)

? ? @desc: localtime()的反函數(shù)。注意:gmtime沒(méi)有反函數(shù),需要人工轉(zhuǎn)換

? ? @param t: struct_time

? ? @return secs: 返回(ts +/- 時(shí)區(qū)的秒數(shù))

? ? @eg: time.mktime(time.gmtime(0)) ==> -28800.0

time.sleep(secs)

? ? @param secs: 秒為單位的休眠時(shí)間,浮點(diǎn)數(shù)

time.strftime(format[, t])

? ? @desc: 轉(zhuǎn)換一個(gè)元組或 struct_time 表示的由 gmtime() 或 localtime() 返回的時(shí)間到由 format 參數(shù)指定的字符串。如果未提供 t ,則使用由 localtime() 返回的當(dāng)前時(shí)間。 format 必須是一個(gè)字符串。如果 t 中的任何字段超出允許范圍,則引發(fā) ValueError 。

? ? @param format: 自定義格式化字符串

? ? @param t: gmtime([secs])或localtime([secs])。默認(rèn)localtime() struct_time結(jié)構(gòu)。

? ? @return str: 自定義format的格式化時(shí)間字符串表達(dá)式.

? ? @eg: time.strftime("%Y-%m_%d %H:%M:%S") ==> '2023-02_22 17:13:37'? 獲得北京時(shí)間的自定義字符串格式

time.time()

? ? @desc: 獲取單位為秒的浮點(diǎn)數(shù)ts值

? ? @return 數(shù)值: 單位為秒的浮點(diǎn)數(shù)ts值

? ? @eg: print(time.time()) ==》 1677058737.7526665


2. datetime

datetime模塊內(nèi)的類繼承關(guān)系:

? ? timedelta

? ? tzinfo

? ? ? ? timezone

? ? time

? ? date

? ? ? ? datetime

2.1 class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

? ? @desc: timedelta 對(duì)象表示兩個(gè) date 或者 time 的時(shí)間間隔

? ? @return: 返回一個(gè)timedelta對(duì)象


? ? @eg: 定義一個(gè)3天,1小時(shí),30秒的timedelta對(duì)象:timedelta(days = 3, seconds=30, hours=1) ==> datetime.timedelta(days=3, seconds=3630)

2.1.1 timedelta.total_seconds()

? ? @desc: 獲取timedelta對(duì)象代表的秒數(shù)


? ? @return 值: 偏移量代表的秒數(shù)


? ? @eg: timedelta(seconds=30, hours=1).total_seconds() ==> 3630.0

2.2 class datetime.date(year, month, day)

? ? @desc: 代表一個(gè)理想化歷法中的日期(年、月和日),即當(dāng)今的格列高利歷向前后兩個(gè)方向無(wú)限延伸

? ? @param year, month, day:


? ? @return : 一個(gè)datetime.date的類對(duì)象


? ? @eg: date(2023, 2, 22) ==> datetime.date(2023, 2, 22)

2.2.1 classmethod date.today()

? ? @desc: 類方法。返回當(dāng)前的本地日期。


? ? @eg: date.today() ==> datetime.date(2023, 2, 22)? 等價(jià)于 date.fromtimestamp(time.time())

2.2.2 classmethod date.fromtimestamp(timestamp)

? ? @desc: 類方法。返回對(duì)應(yīng)于 POSIX 時(shí)間戳的當(dāng)?shù)貢r(shí)間,例如 time.time() 返回的就是時(shí)間戳。

? ? @param timestamp:


? ? @eg: date.fromtimestamp(time.time()) ==》 datetime.date(2023, 2, 22)

2.2.3 classmethod date.fromisoformat(date_string)

? ? @desc: 返回一個(gè)對(duì)應(yīng)于以 YYYY-MM-DD 格式給出的 date_string 的 date 對(duì)象

? ? @param date_string: ISO標(biāo)準(zhǔn)日期格式化字符串, 只支持 YYYY-MM-DD 格式


? ? @eg: date.fromisoformat('2019-12-04') ==> datetime.date(2019, 12, 4)

2.2.4?date_obj.replace(year=self.year, month=self.month, day=self.day)

? ? @desc: 生成一個(gè)新date,原date不變,新date在舊的上面進(jìn)行改動(dòng)

? ? @param : 想要被修改的字段

? ? @return : 一個(gè)新date對(duì)象

? ? @eg:

d_obj = date(2023, 2, 22)

new_obj = d_obj.replace(month=1)

print(d_obj, new_obj) ==> 2023-02-22 2023-01-22

2.2.5 date_obj.timetuple()

? ? @desc: date轉(zhuǎn)struct_time

? ? @return struct_time:

? ? @eg:

d_t = d_obj.timetuple()

for one in d_t:

? ? print(one)

print(d_t.tm_gmtoff, d_t.tm_zone)

2.2.6 date_obj.isoformat()

? ? @desc: date轉(zhuǎn)標(biāo)準(zhǔn)iso日期字符串

2.2.7 date_obj.strftime(format)

? ? @desc: 返回一個(gè)由顯式格式字符串所指明的代表日期的字符串。

? ? @eg: d_obj.strftime('%Y%m%d') ==> '20230223'


2.3?class?datetime.datetime(year,?month,?day,?hour=0,?minute=0,?second=0,?microsecond=0,?tzinfo=None,?*,?fold=0)

datatime.datetime由于有時(shí)分秒,因此要注意時(shí)區(qū)

2.3.1?classmethod?datetime.today()

????@desc: 返回localtime的datetime.datetime對(duì)象 <==>?datetime.fromtimestamp(time.time())

2.3.2?classmethod?datetime.now(tz=None)

? ??@desc:?參數(shù)?tz?為?None?或未指定,這就類似于?today()

? ? @param tz:?如果?tz?不為?None,它必須是?tzinfo?子類的一個(gè)實(shí)例,并且當(dāng)前日期和時(shí)間將被轉(zhuǎn)換到?tz?時(shí)區(qū)

2.3.3?classmethod?datetime.utcnow()

2.3.4?classmethod?datetime.fromtimestamp(timestamp,?tz=None)

2.3.5?classmethod?datetime.utcfromtimestamp(timestamp)

2.3.6?classmethod?datetime.fromisoformat(date_string)

2.3.7?classmethod?datetime.strptime(date_string,?format)

? ? @desc:?返回一個(gè)對(duì)應(yīng)于?date_string,根據(jù)?format?進(jìn)行解析得到的?datetime?對(duì)象。

2.3.8 datetime_obj.date()

? ? @desc: 返回date對(duì)象

2.3.9?datetime_obj.replace(year=self.year,?month=self.month,?day=self.day,?hour=self.hour,?minute=self.minute,?second=self.second,?microsecond=self.microsecond,?tzinfo=self.tzinfo,?*,?fold=0)

2.3.10 datetime_obj.astimezone(tz=None)

? ? @desc: 用于datetime.datetime對(duì)象轉(zhuǎn)換時(shí)區(qū)

2.3.11?datetime_obj.datetime.tzname()

2.3.12 datetime_obj.timestamp()

? ? @desc: 返回ts

2.4 class datetime.time(略)

2.5?class?datetime.timezone(offset,?name=None)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容