<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
datetime是Python提供的操作日期和時間的標準庫,主要有datetime.date模組、datetime.time模組及datetime.datetime模組。其中date模組提供了日期操作相關的方法;time模組提供了時間操作相關的方法;datetime提供了日期時間操作的相關內容。本文主要介紹datetime.date模組中常用函數的使用詳情。
日期物件類:
# coding:utf-8 import datetime now_date = datetime.date(2022, 12, 26) print(now_date)
# coding:utf-8 import datetime print(datetime.date(2022, 12, 26)) print(type(datetime.date(2022, 12, 26))) # <class 'datetime.date'> # 下面的程式碼報錯,缺少引數 # print(datetime.date(2022, 12)) # TypeError: function missing required argument 'day' (pos 3) # 下面的程式碼提示值錯誤,date()函數的引數依次為 年份、月份、日;年份的範圍是1-9999,月份的範圍是1-12,日的範圍是1-31 # print(datetime.date(10001, 12, 12)) # ValueError: year 10001 is out of range # print(datetime.date(2022, 13, 12)) # ValueError: month must be in 1..12 # print(datetime.date(2022, 12, 32)) # ValueError: day is out of range for month # 關鍵字傳傳參,只要保證年份、月份、天的值都在可用範圍內,位置不受影響 print(datetime.date(day=15, year=2029, month=12))
# coding:utf-8 import datetime print(datetime.date.today()) # 2022-07-08 print(type(datetime.date.today())) # <class 'datetime.date'>
print(datetime.date.ctime(datetime.date.today())) # Fri Jul 8 00:00:00 2022 print(type(datetime.date.ctime(datetime.date.today()))) # <class 'str'> # ctime()函數的引數必須是 datetime.date型別 print(datetime.date.ctime(datetime.date(2022, 12, 26))) # Mon Dec 26 00:00:00 2022
datetime_1 = datetime.date(2022, 12, 26) # 獲取日期物件的日,返回的值為int型別 print(datetime_1.day, type(datetime_1.day), type(datetime_1)) # 26 <class 'int'> <class 'datetime.date'> # 獲取日期物件的月,返回的值亦為int型別 print(datetime_1.month, type(datetime_1.month), type(datetime_1)) # 12 <class 'int'> <class 'datetime.date'> # 獲取日期物件的年,返回的值亦為int型別 print(datetime_1.year, type(datetime_1.year), type(datetime_1)) # 2022 <class 'int'> <class 'datetime.date'>
datetime_1 = datetime.date(2022, 12, 26) print(datetime.date.replace(datetime_1, year=2019, month=11, day=25)) # 2019-11-25 print(type(datetime.date.replace(datetime_1, year=2019, month=11, day=25))) # <class 'datetime.date'> print(datetime_1) # 必須有一個日期或者時間物件的引數,不傳替換引數即返回傳入的datetime.date物件的值 print(datetime.date.replace(datetime_1)) # 2022-12-26 # 只替換年度 print(datetime.date.replace(datetime_1, year=2019)) # 2019-12-26 # 只替換月份 print(datetime.date.replace(datetime_1, month=11)) # 2022-11-26 # 只替換日 print(datetime.date.replace(datetime_1, day=25)) # 2022-12-25
通過觀察,替換年度、月份、日 都是在2022-12-26(datetime_1變數的初始值)基礎上替換的。所以可以肯定的是該函數不會改變原變數的值
格式符號 | 符號的含義 |
%y | 兩位數的年份表示(00-99) |
%Y | 四位數的年份表示(000-9999) |
%m | 月份(01-12) |
%d | 月內中的一天(0-31) |
%H | 24小時制小時數(0-23) |
%I | 12小時制小時數(01-12) |
%M | 分鐘數(00-59) |
%S | 秒(00-59) |
%a | 本地簡化星期名稱 |
%A | 本地完整星期名稱 |
%b | 本地簡化的月份名稱 |
%B | 本地完整的月份名稱 |
%c | 本地相應的日期表示和時間表示 |
%j | 年內的一天(001-366) |
%p | 本地A.M.或P.M.的等價符 |
%U | 一年中的星期數(00-53)星期天為星期的開始 |
%w | 星期(0-6),星期天為 0,星期一為 1,以此類推。 |
%W | 一年中的星期數(00-53)星期一為星期的開始 |
%x | 本地相應的日期表示 |
%X | 本地相應的時間表示 |
%Z | 當前時區的名稱 |
%% | %號本身 |
datetime_2 = datetime.datetime.today() print(datetime_2, type(datetime_2)) print(datetime.date.strftime(datetime_1, "%Y--%y--%D--%d--%H--%h--%M--%m--%S--%A--%a--%B--%b--%C--%c")) print(datetime.date.strftime(datetime_2, "%Y--%y--%D--%d--%H--%h--%M--%m--%S--%A--%a--%B--%b--%C--%c")) # 常用的格式: 年、月、日、時、分、秒 print(datetime.date.strftime(datetime_2, "%Y-%m-%d %H:%M:%S")) # 2022-07-08 18:32:40
(4位元年-2位月-兩位日)
,如(2022,07,08)
# 返回日期或者時間物件的ISO標準日期(4位元年-2位月-兩位日) print(datetime.date.isoformat(datetime_1), datetime_1) # 2022-12-26 2022-12-26 print(datetime.date.isoformat(datetime_2), datetime_2) # 2022-07-08 2022-07-08 18:44:36.613676 # 將符合ISO標準格式的日期字串轉換為datetime.date物件 print(datetime.date.fromisoformat("2022-07-08"), type(datetime.date.fromisoformat("2022-07-08"))) # 不符合ISO標準格式的日期字串則報錯 # print(datetime.date.fromisoformat("2022-7-08")) # ValueError: Invalid isoformat string: '2022-7-08' # print(datetime.date.fromisoformat("2022-07-8")) # ValueError: Invalid isoformat string: '2022-7-08'
print(datetime.date.isoweekday(datetime.date(2022, 7, 3))) # 7 星期日 print(datetime.date.isoweekday(datetime.date(2022, 7, 4))) # 1 星期一 print(datetime.date.isoweekday(datetime.date(2022, 7, 8))) # 5 星期五 print(datetime.date.isoweekday(datetime.date(2022, 7, 9))) # 6 星期六
# 返回日期或者時間物件的星期幾(0~6) print(datetime.date.weekday(datetime.date(2022, 7, 3))) # 6 星期日 print(datetime.date.weekday(datetime.date(2022, 7, 4))) # 0 星期一 print(datetime.date.weekday(datetime.date(2022, 7, 8))) # 4 星期五 print(datetime.date.weekday(datetime.date(2022, 7, 9))) # 5 星期六
print(datetime.date.fromtimestamp(2015236523)) # 2033-11-10 print(type(datetime.date.fromtimestamp(2015236523))) # <class 'datetime.date'>
(年份, 週數, 星期數)
,如(2022,26,7)
# 獲取符合ISO標準格式的時間元組 print(datetime.date.isocalendar(datetime.date(2022, 7, 3))) # datetime.IsoCalendarDate(year=2022, week=26, weekday=7) # 根據符合ISO標準格式的時間元組(年份, 週數, 星期數)計算日期 print(datetime.date.fromisocalendar(2022, 26, 7)) # 2022-07-03
print(datetime.date.fromordinal(1), type(datetime.date.fromordinal(1))) # 0001-01-01 <class 'datetime.date'> print(datetime.date.fromordinal(5)) # 0001-01-05 print(datetime.date.fromordinal(738339)) # 2022-07-03 # 返回公元公曆開始到現在的天數 print(datetime.date.toordinal(datetime.date(2022, 7, 3))) # 738339
# 將 date型別轉換為struct_time型別 print(datetime.date.timetuple(datetime.date(2022, 7, 3))) # 日期型別的最大值 print(datetime.date.max) # 日期型別的最小值 print(datetime.date.min)
# coding:utf-8 import datetime # 日期物件類(date class) """ * 日期物件具有3個屬性:年份、月份、日 * date()可以將指定的三個引數轉化為datetime.date類的型別 * date()函數按位元置傳參必須是:年份、月份、日的順序 """ print(datetime.date(2022, 12, 26)) print(type(datetime.date(2022, 12, 26))) # <class 'datetime.date'> # 下面的程式碼報錯,缺少引數 # print(datetime.date(2022, 12)) # TypeError: function missing required argument 'day' (pos 3) # 下面的程式碼提示值錯誤,date()函數的引數依次為 年份、月份、日;年份的範圍是1-9999,月份的範圍是1-12,日的範圍是1-31 # print(datetime.date(10001, 12, 12)) # ValueError: year 10001 is out of range # print(datetime.date(2022, 13, 12)) # ValueError: month must be in 1..12 # print(datetime.date(2022, 12, 32)) # ValueError: day is out of range for month # 關鍵字傳傳參,只要保證年份、月份、天的值都在可用範圍內,位置不受影響 print(datetime.date(day=15, year=2029, month=12)) # date類常用的函數 # 獲取當期日期 print(datetime.date.today()) # 2022-07-08 print(type(datetime.date.today())) # <class 'datetime.date'> # ctime()是將一個datetime.date物件轉換為日期時間格式的字串 print(datetime.date.ctime(datetime.date.today())) # Fri Jul 8 00:00:00 2022 print(type(datetime.date.ctime(datetime.date.today()))) # <class 'str'> # ctime()函數的引數必須是 datetime.date型別 print(datetime.date.ctime(datetime.date(2022, 12, 26))) # Mon Dec 26 00:00:00 2022 # 建立一個 datetime.date物件 datetime_1 = datetime.date(2022, 12, 26) # 獲取日期物件的日,返回的值為int型別 print(datetime_1.day, type(datetime_1.day), type(datetime_1)) # 26 <class 'int'> <class 'datetime.date'> # 獲取日期物件的月,返回的值亦為int型別 print(datetime_1.month, type(datetime_1.month), type(datetime_1)) # 12 <class 'int'> <class 'datetime.date'> # 獲取日期物件的年,返回的值亦為int型別 print(datetime_1.year, type(datetime_1.year), type(datetime_1)) # 2022 <class 'int'> <class 'datetime.date'> # 替換datetime.date物件的值 # replace(self, year=None, month=None, day=None) 函數具有一個必傳引數,三個預設引數 # year是要替換的年度 # month是要替換的月份 # day是要替換的日 print(datetime.date.replace(datetime_1, year=2019, month=11, day=25)) # 2019-11-25 print(type(datetime.date.replace(datetime_1, year=2019, month=11, day=25))) # <class 'datetime.date'> print(datetime_1) # 必須有一個日期或者時間物件的引數,不傳替換引數即返回傳入的datetime.date物件的值 print(datetime.date.replace(datetime_1)) # 2022-12-26 # 只替換年度 print(datetime.date.replace(datetime_1, year=2019)) # 2019-12-26 # 只替換月份 print(datetime.date.replace(datetime_1, month=11)) # 2022-11-26 # 只替換日 print(datetime.date.replace(datetime_1, day=25)) # 2022-12-25 # 通過觀察,替換年度、月份、日 都是在2022-12-26(datetime_1變數的初始值)基礎上替換的。所以可以肯定的是該函數不會改變源變數的值 # 格式化日期 datetime_2 = datetime.datetime.today() print(datetime_2, type(datetime_2)) print(datetime.date.strftime(datetime_1, "%Y--%y--%D--%d--%H--%h--%M--%m--%S--%A--%a--%B--%b--%C--%c")) print(datetime.date.strftime(datetime_2, "%Y--%y--%D--%d--%H--%h--%M--%m--%S--%A--%a--%B--%b--%C--%c")) # 常用的格式: 年、月、日、時、分、秒 print(datetime.date.strftime(datetime_2, "%Y-%m-%d %H:%M:%S")) # 2022-07-08 18:32:40 # 返回日期或者時間物件的ISO標準日期(4位元年-2位月-兩位日) print(datetime.date.isoformat(datetime_1), datetime_1) # 2022-12-26 2022-12-26 print(datetime.date.isoformat(datetime_2), datetime_2) # 2022-07-08 2022-07-08 18:44:36.613676 # 將符合ISO標準格式的日期字串轉換為datetime.date物件 print(datetime.date.fromisoformat("2022-07-08"), type(datetime.date.fromisoformat("2022-07-08"))) # 不符合ISO標準格式的日期字串則報錯 # print(datetime.date.fromisoformat("2022-7-08")) # ValueError: Invalid isoformat string: '2022-7-08' # print(datetime.date.fromisoformat("2022-07-8")) # ValueError: Invalid isoformat string: '2022-7-08' # 獲取符合ISO標準格式的日期字串的星期幾(1~7) print(datetime.date.isoweekday(datetime.date(2022, 7, 3))) # 7 星期日 print(datetime.date.isoweekday(datetime.date(2022, 7, 4))) # 1 星期一 print(datetime.date.isoweekday(datetime.date(2022, 7, 8))) # 5 星期五 print(datetime.date.isoweekday(datetime.date(2022, 7, 9))) # 6 星期六 # 返回日期或者時間物件的星期幾(0~6) print(datetime.date.weekday(datetime.date(2022, 7, 3))) # 6 星期日 print(datetime.date.weekday(datetime.date(2022, 7, 4))) # 0 星期一 print(datetime.date.weekday(datetime.date(2022, 7, 8))) # 4 星期五 print(datetime.date.weekday(datetime.date(2022, 7, 9))) # 5 星期六 # 根據時間戳計算日期 print(datetime.date.fromtimestamp(2015236523)) # 2033-11-10 print(type(datetime.date.fromtimestamp(2015236523))) # <class 'datetime.date'> # 獲取符合ISO標準格式的時間元組(年份, 週數, 星期數) # 週數:一年中的第幾周,範圍是1~53 # 星期數:星期中的第幾天,週一為第1天,週日為第7天 print(datetime.date.isocalendar(datetime.date(2022, 7, 3))) # datetime.IsoCalendarDate(year=2022, week=26, weekday=7) # 根據符合ISO標準格式的時間元組(年份, 週數, 星期數)計算日期 print(datetime.date.fromisocalendar(2022, 26, 7)) # 2022 -07-03 # 將整形按公元歷轉換為日期 # * 公元1年1月1日為1 print(datetime.date.fromordinal(1), type(datetime.date.fromordinal(1))) # 0001-01-01 <class 'datetime.date'> print(datetime.date.fromordinal(5)) # 0001-01-05 print(datetime.date.fromordinal(738339)) # 2022-07-03 # 返回公元公曆開始到現在的天數 print(datetime.date.toordinal(datetime.date(2022, 7, 3))) # 738339 # 將 date型別轉換為struct_time型別 print(datetime.date.timetuple(datetime.date(2022, 7, 3))) # 日期型別的最大值 print(datetime.date.max) # 日期型別的最小值 print(datetime.date.min)
到此這篇關於Python標準庫datetime date模組的詳細介紹的文章就介紹到這了,更多相關Python date模組 內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45