
Python中的time模塊與datetime模塊用法總結
Python中內置的各項時間日期函數幾乎都來自于time和datetime這兩個模塊,下面整理了Python中的time模塊與datetime模塊用法總結,需要的朋友可以參考下
time模塊
time模塊是包含各方面對時間操作的函數. 盡管這些常常有效但不是所有方法在任意平臺中有效. time用struct_time表示時間
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
函數
time.time(): 返回一個時間戳
time.asctime([t]): 轉換gmtime()和localtime()返回的元組或struct_time為string.
time.clock(): 在第一次調用的時候, 返回程序運行的時間. 第二次之后返回與之前的間隔.
time.ctime([secs]): 將時間戳轉換為時間字符串, 如沒有提供則返回當前的時間字符串,并與asctime(localtime())一樣.
time.gmtime([secs]): 將時間戳轉化為, UTC 時區的struct_time.
time.localtime([secs]): 類似gmtime()但會把他轉換成本地時區.
time.mktime(t): struct_time 轉化為時間戳.
time.sleep(secs): 線程推遲指定時間, 以秒為單位.
time.strftime(format[,t]): 根據參數轉換一個sturc_time或元組為字符串.
time.strptime(string[, format]): 與strftime相反,返回一個struct_time.
import time
# Fri Apr 24 06:39:34 2015
print time.asctime(time.gmtime())
# 0.0
# None
# 1.01136392961 因計算機而異
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 兩位數的年份 00 ~ 99.
%Y 四位數的年份 0000 ~ 9999
%m 月份 01 ~ 12.
%d day 01 ~ 31.
%H 時 00 ~ 23.
%I 時 01 ~ 12.
%M 分 00 ~ 59.
%S 秒 00 ~ 61.
datetime模塊
datetime模塊提供對于日期和時間進行簡單或復雜的操作. datetime 模塊提供了一下的可用類型(Available Types).
datetime.MINYEAR 和 datetime.MAXYEAR 模塊常量表示datetime接受的范圍
class datetime.date: 一個理想化的日期, 提供year, month, day屬性
class datetime.time: 一個理想化的時間, 提供hour, minute, second, microsecond, tzinfo.
class datetime.datetime: 日期和時間的組合.提供year, month, day, hour, minute, second, microsecond, tzinfo.
class datetime.timedelta: 表達兩個date,time和datetime持續時間內的微妙差異.
class datetime.tzinfo: 時間對象的抽象基類.
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
下面說具體說一下類和類的方法
date類
一個date對象代表理想化的日期.
class datetime.date(year, month, day)
# All arguments are required. Arguments may be ints or longs.
# 所有參數都是必須的. 參數可能是 int 或 long.
MINYEAR <= year <= MAXYEAR
1<= month <= 12
1<= day <= number of days in the given month and year.(隨著月份和年份)
如果參數脫離給的范圍會拋出, valueError.
1.類方法 >`date.today()`:返回當前的本地日期, 這等價于 `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):根據提供的時間戳返回local date. 時間戳常用于對時間類型的存儲.
import time
from datetime import date
# 1429587111.21
# 2015-04-21
print time.time()
print date.fromtimestamp(time.time())
3.類方法date.fromordinal(ordinal):根據提供的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
實例方法
date.replace(year, month, day):返回一個相同值的data對象, 除了這些參數給關鍵字指定新的值.
date.timetuple(): 返回一個time.struct_time對象.
date.toordinal(): 返回一個Gregoian Calendar對象.
date.weekday(): 返回day of the week. 星期一為0,星期日為6.
date.isoweekday(): 返回day of the week. 星期一為1,星期日為7.
date.isocalendar(): 返回一個三元組, (ISO year, ISO week number, ISO weekday).
date.isoformat(): 返回 一個'YYYY-MM-DD'的字符串格式.
date.ctime(): 返回一個字符串日期, d.ctime() 等同于 time.ctime(time.mktime(d.timetuple())).
date.strftime(format): 返回一個字符串日期, 格式自定義.
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 對象是一個單一的對象, 包含所有date和time對象的信息.
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(): 返回當前本地datetime.隨著 tzinfo None. 這個等同于datetime.fromtimestamp(time.time()).
datetime.now([tz]): 返回當前本地日期和時間, 如果可選參數tz為None或沒有詳細說明,這個方法會像today().
datetime.utcnow(): 返回當前的UTC日期和時間, 如果tzinfo None ,那么與now()類似.
datetime.fromtimestamp(timestamp[, tz]): 根據時間戳返回本地的日期和時間.tz指定時區.
datetime.utcfromtimestamp(timestamp): 根據時間戳返回 UTC datetime.
datetime.fromordinal(ordinal): 根據Gregorian ordinal 返回datetime.
datetime.combine(date, time): 根據date和time返回一個新的datetime.
datetime.strptime(date_string, format): 根據date_string和format返回一個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)
實例方法
datetime.date(): 返回相同年月日的date對象.
datetime.time(): 返回相同時分秒微秒的time對象.
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).
實例屬性(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 代表本地(一天內)時間.
class datetime.time([hour
[, minute
[, second
[, microsecond
[, tzinfo]]]]])
# All arguments are optional.
# 所有參數都是可選的.
0 <= hour < 24
0 <= minute < 60
0 <= second < 60
0 <= microsesond < 10**6
time類就是對時間的一些操作,其功能類似與datetime.其實date和time就是對datetime中日期和時間的操作.
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25