
Python中的time模塊與datetime模塊用法總結(jié)
Python中內(nèi)置的各項(xiàng)時(shí)間日期函數(shù)幾乎都來(lái)自于time和datetime這兩個(gè)模塊,下面整理了Python中的time模塊與datetime模塊用法總結(jié),需要的朋友可以參考下
time模塊
time模塊是包含各方面對(duì)時(shí)間操作的函數(shù). 盡管這些常常有效但不是所有方法在任意平臺(tái)中有效. time用struct_time表示時(shí)間
import time
# time.struct_time(tm_year=2015, tm_mon=4, tm_mday=24,
tm_hour=14, tm_min=17, tm_sec=26,
tm_wday=4, tm_yday=114, tm_isdst=0)
# 2015
print time.localtime()
print time.localtime().tm_year
函數(shù)
time.time(): 返回一個(gè)時(shí)間戳
time.asctime([t]): 轉(zhuǎn)換gmtime()和localtime()返回的元組或struct_time為string.
time.clock(): 在第一次調(diào)用的時(shí)候, 返回程序運(yùn)行的時(shí)間. 第二次之后返回與之前的間隔.
time.ctime([secs]): 將時(shí)間戳轉(zhuǎn)換為時(shí)間字符串, 如沒(méi)有提供則返回當(dāng)前的時(shí)間字符串,并與asctime(localtime())一樣.
time.gmtime([secs]): 將時(shí)間戳轉(zhuǎn)化為, UTC 時(shí)區(qū)的struct_time.
time.localtime([secs]): 類似gmtime()但會(huì)把他轉(zhuǎn)換成本地時(shí)區(qū).
time.mktime(t): struct_time 轉(zhuǎn)化為時(shí)間戳.
time.sleep(secs): 線程推遲指定時(shí)間, 以秒為單位.
time.strftime(format[,t]): 根據(jù)參數(shù)轉(zhuǎn)換一個(gè)sturc_time或元組為字符串.
time.strptime(string[, format]): 與strftime相反,返回一個(gè)struct_time.
import time
# Fri Apr 24 06:39:34 2015
print time.asctime(time.gmtime())
# 0.0
# None
# 1.01136392961 因計(jì)算機(jī)而異
print time.clock()
print time.sleep(1)
print time.clock()
# Fri Apr 24 14:42:07 2015
print time.ctime()
# 2015-04-24
print time.strftime('%Y-%m-%d', time.localtime())
# 1429857836.0
print time.mktime(time.localtime())
time模塊中常用的格式化字符串
%y 兩位數(shù)的年份 00 ~ 99.
%Y 四位數(shù)的年份 0000 ~ 9999
%m 月份 01 ~ 12.
%d day 01 ~ 31.
%H 時(shí) 00 ~ 23.
%I 時(shí) 01 ~ 12.
%M 分 00 ~ 59.
%S 秒 00 ~ 61.
datetime模塊
datetime模塊提供對(duì)于日期和時(shí)間進(jìn)行簡(jiǎn)單或復(fù)雜的操作. datetime 模塊提供了一下的可用類型(Available Types).
datetime.MINYEAR 和 datetime.MAXYEAR 模塊常量表示datetime接受的范圍
class datetime.date: 一個(gè)理想化的日期, 提供year, month, day屬性
class datetime.time: 一個(gè)理想化的時(shí)間, 提供hour, minute, second, microsecond, tzinfo.
class datetime.datetime: 日期和時(shí)間的組合.提供year, month, day, hour, minute, second, microsecond, tzinfo.
class datetime.timedelta: 表達(dá)兩個(gè)date,time和datetime持續(xù)時(shí)間內(nèi)的微妙差異.
class datetime.tzinfo: 時(shí)間對(duì)象的抽象基類.
from datetime import timedelta, datetime
a = datetime.now()
b = timedelta(days=7)
# 7 days, 0:00:00
# 2015-04-14 16:02:39.189000
print b
print a - b
下面說(shuō)具體說(shuō)一下類和類的方法
date類
一個(gè)date對(duì)象代表理想化的日期.
class datetime.date(year, month, day)
# All arguments are required. Arguments may be ints or longs.
# 所有參數(shù)都是必須的. 參數(shù)可能是 int 或 long.
MINYEAR <= year <= MAXYEAR
1<= month <= 12
1<= day <= number of days in the given month and year.(隨著月份和年份)
如果參數(shù)脫離給的范圍會(huì)拋出, valueError.
1.類方法 >`date.today()`:返回當(dāng)前的本地日期, 這等價(jià)于 `date.fromtimestamp(time.time())`.
Return the current local date. This is equvalent to `date.fromtimestamp(time.time())`.
from datetime import date
# print 2015-04-21
print date.today()
2.date.fromtimestamp(timestamp):根據(jù)提供的時(shí)間戳返回local date. 時(shí)間戳常用于對(duì)時(shí)間類型的存儲(chǔ).
import time
from datetime import date
# 1429587111.21
# 2015-04-21
print time.time()
print date.fromtimestamp(time.time())
3.類方法date.fromordinal(ordinal):根據(jù)提供的Gregorian日歷返回date.(不做描述)
類屬性
date.min: 返回 date(MINYEAR, 1, 1).
date.max: 返回 date(MAXYEAR, 12, 31).
date.year: 返回 年, MINYEAR和MAXYEAR之間
date.month: 返回 月, 1到12月之間
date.day: 返回 1到 n 之間.
d = date(2014, 4, 21)
# 2014 4 21
print d.year, d.month, d.day
實(shí)例方法
date.replace(year, month, day):返回一個(gè)相同值的data對(duì)象, 除了這些參數(shù)給關(guān)鍵字指定新的值.
date.timetuple(): 返回一個(gè)time.struct_time對(duì)象.
date.toordinal(): 返回一個(gè)Gregoian Calendar對(duì)象.
date.weekday(): 返回day of the week. 星期一為0,星期日為6.
date.isoweekday(): 返回day of the week. 星期一為1,星期日為7.
date.isocalendar(): 返回一個(gè)三元組, (ISO year, ISO week number, ISO weekday).
date.isoformat(): 返回 一個(gè)'YYYY-MM-DD'的字符串格式.
date.ctime(): 返回一個(gè)字符串日期, d.ctime() 等同于 time.ctime(time.mktime(d.timetuple())).
date.strftime(format): 返回一個(gè)字符串日期, 格式自定義.
d = date(2015, 4, 21)
# 2015-04-21
# 2015-04-21
# 2015-04-22
print d
print d.replace()
print d.replace(day=22)
# time.struct_time(tm_year=2015, tm_mon=4, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=111, tm_isdst=-1)
print d.timetuple()
# print 1
# print 2
print d.weekday()
print d.isoweekday()
# print 2015-04-21
print d.isoformat()
# print 21/04/2015
print d.strftime('%d/%m/%y')
datetime 類
datetime 對(duì)象是一個(gè)單一的對(duì)象, 包含所有date和time對(duì)象的信息.
class datetime.datetime(year, month, day[, hour
[, minute
[, second
[, microsecond
[, tzinfo]]]]])
# The year, month and day arguments are required.
MINYEAR <= year <= MAXYEAR
1 <= month <= 12
1 <= day <= n
0 <= hour < 24
0 <= minute < 60
0 <= second < 60
0 <= microsecond < 10**6
類方法
datetime.today(): 返回當(dāng)前本地datetime.隨著 tzinfo None. 這個(gè)等同于datetime.fromtimestamp(time.time()).
datetime.now([tz]): 返回當(dāng)前本地日期和時(shí)間, 如果可選參數(shù)tz為None或沒(méi)有詳細(xì)說(shuō)明,這個(gè)方法會(huì)像today().
datetime.utcnow(): 返回當(dāng)前的UTC日期和時(shí)間, 如果tzinfo None ,那么與now()類似.
datetime.fromtimestamp(timestamp[, tz]): 根據(jù)時(shí)間戳返回本地的日期和時(shí)間.tz指定時(shí)區(qū).
datetime.utcfromtimestamp(timestamp): 根據(jù)時(shí)間戳返回 UTC datetime.
datetime.fromordinal(ordinal): 根據(jù)Gregorian ordinal 返回datetime.
datetime.combine(date, time): 根據(jù)date和time返回一個(gè)新的datetime.
datetime.strptime(date_string, format): 根據(jù)date_string和format返回一個(gè)datetime.
from datetime import datetime
# 2015-04-21 14:07:39.262000
print datetime.today()
# 2015-04-21 14:08:20.362000
print datetime.now()
# 1429596607.06
# 2015-04-21 14:10:07.061000
t = time.time()
print t
print datetime.fromtimestamp(t)
from datetime import datetime, date, time
a = date(2015, 4, 21)
b = time(14, 13, 34)
# 2015-04-21 14:13:34
print datetime.combine(a, b)
實(shí)例方法
datetime.date(): 返回相同年月日的date對(duì)象.
datetime.time(): 返回相同時(shí)分秒微秒的time對(duì)象.
datetime.replace(kw): kw in [year, month, day, hour, minute, second, microsecond, tzinfo], 與date類似.
其他方法可查看官方文檔…
from datetime import datetime, date, time
td = date(2015, 4, 21)
n = time(14, 28, 30)
# 2099-04-21 14:30:42.103000
print datetime.now(0.replace(year=2099)
類屬性
datetime.min: datetime(MINYEAR, 1, 1).
datetime.max: datetime(MAXYEAR, 12, 31, 23, 59, 59, 999999).
實(shí)例屬性(read-only)
datetime.year: 1 至 9999
datetime.month: 1 至 12
datetime.day: 1 至 n
datetime.hour: In range(24). 0 至 23
datetime.minute: In range(60).
datetime.second: In range(60).
datetime.microsecond: In range(1000000).
time類
time 代表本地(一天內(nèi))時(shí)間.
class datetime.time([hour
[, minute
[, second
[, microsecond
[, tzinfo]]]]])
# All arguments are optional.
# 所有參數(shù)都是可選的.
0 <= hour < 24
0 <= minute < 60
0 <= second < 60
0 <= microsesond < 10**6
time類就是對(duì)時(shí)間的一些操作,其功能類似與datetime.其實(shí)date和time就是對(duì)datetime中日期和時(shí)間的操作.
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
LSTM 模型輸入長(zhǎng)度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長(zhǎng)序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠(chéng)摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡(jiǎn)稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測(cè)分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢(shì)預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測(cè)分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭(zhēng)搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢(shì)性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢(shì)性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢(shì)與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢(shì)變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國(guó)內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門(mén)控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場(chǎng)調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場(chǎng)調(diào)研是企業(yè)洞察市場(chǎng)動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場(chǎng)調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書(shū)考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開(kāi)啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03