<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
import time
時間戳(timestamp):時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。
時間戳單位最適於做日期運算。但是1970年之前的日期就無法以此表示了。太遙遠的日期也不行,UNIX和Windows只支援到2038年。
time_stamp = time.time() print(time_stamp, type(time_stamp)) # 1574923359.1739607 <class 'float'>
格式化的時間字串(format string):格式化時間表示的是普通的字串格式的時間。
format_time = time.strftime("%Y-%m-%d %X") print(format_time, type(format_time)) #2019-03-07 16:22:11 <class 'str'> # 格式化成2016-03-20 11:45:39形式 print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
python中時間日期格式化符號:
結構化的時間(struct time):struct_time元組共有9個元素共九個元素,分別為(年,月,日,時,分,秒,一年中第幾周(0是週一),一年中第幾天,夏令時)
# UTC時區的struct_time: print(time.gmtime() ) # time.struct_time(tm_year=2019, tm_mon=11, tm_mday=28, tm_hour=6, tm_min=45, tm_sec=34, tm_wday=3, tm_yday=332, tm_isdst=0) # 本地時區的struct_time: print( time.localtime() ) # time.struct_time(tm_year=2019, tm_mon=11, tm_mday=28, tm_hour=14, tm_min=45, tm_sec=34, tm_wday=3, tm_yday=332, tm_isdst=0) # 獲取當前時間 print( time.localtime(time.time()) # 結構化時間的基準時間 print(time.localtime(0) ) # time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0) # 結構化時間的基準時間上增加一年時間 print(time.localtime(3600 * 24 * 365) ) # time.struct_time(tm_year=1971, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=1, tm_isdst=0)
如上圖所示,我們總能通過某些方法在結構化時間-格式化時間-時間戳三者之間進行轉換,下面我們將用程式碼展示如何通過這些方法轉換時間格式。
# 結構化時間 now_time = time.localtime() print(now_time) # time.struct_time(tm_year=2019, tm_mon=11, tm_mday=28, tm_hour=14, tm_min=51, tm_sec=55, tm_wday=3, tm_yday=332, tm_isdst=0) # 把結構化時間轉換為時間戳格式 print(time.mktime(now_time)) # 1574923915.0 # 把結構化時間轉換為格式化時間 # %Y年-%m月-%d天 %X時分秒=%H時:%M分:%S秒 print(time.strftime("%Y-%m-%d %X", now_time) ) # 2019-11-28 14:51:55 # 把格式化時間化為結構化時間,它和strftime()是逆操作 print(time.strptime('2013-05-20 13:14:52', '%Y-%m-%d %X') ) # time.struct_time(tm_year=2013, tm_mon=5, tm_mday=20, tm_hour=13, tm_min=14, tm_sec=52, tm_wday=0, tm_yday=140, tm_isdst=-1)
# 把結構化時間表示為這種形式(24個字元的字串):'Sun Jun 20 23:21:05 1993'。 print(time.asctime() ) # Thu Nov 28 14:51:55 2019 # 如果沒有引數,預設會將time.localtime()作為引數傳入。 print(time.asctime(time.localtime()) ) # Thu Nov 28 14:51:55 2019 # 把一個時間戳轉化為這種形式(24個字元的字串):'Sun Jun 20 23:21:05 1993'。 print(time.ctime() ) # Thu Nov 28 14:51:55 2019 # 如果引數未給或者為None的時候,預設會將time.time()為引數。它的作用相當於time.asctime(time.localtime(secs))。 print(time.ctime(time.time())) # Thu Nov 28 14:51:55 2019 # 推遲指定的時間執行,單位為秒 start = time.time() time.sleep(3) end = time.time() print(end-start) #3.0005428791046143 time.perf_counter() # 返回系統執行時間 time.process_time() # 返回程序執行時間
datetime模組可以看成是時間加減的模組
import datetime
import datetime import time # 返回當前時間 print(datetime.datetime.now() ) # 2019-11-28 15:02:23.138960 print(datetime.date.fromtimestamp(time.time()) ) # 2019-11-28 # 當前時間+3天 print(datetime.datetime.now() + datetime.timedelta(3) ) # 2019-12-01 15:02:23.138960 # 當前時間-3天 print(datetime.datetime.now() + datetime.timedelta(-3)) # 2019-11-25 15:02:23.138960 # 當前時間-3小時 print(datetime.datetime.now() + datetime.timedelta(hours=3) ) # 2019-11-28 18:02:23.138960 # 當前時間+30分鐘 print(datetime.datetime.now() + datetime.timedelta(minutes=30) ) # 2019-11-28 15:32:23.138960 # 時間替換 c_time = datetime.datetime.now() print(c_time.replace(minute=20, hour=5, second=13)) # 2019-11-28 05:20:13.138960
today = datetime.date.today()
yesterday = today - datetime.timedelta(days=1)
last_month = today.month - 1 if today.month - 1 else 12
time_stamp = time.time()
datetime.datetime.fromtimestamp(time_stamp)
int(time.mktime(today.timetuple()))
today_str = today.strftime("%Y-%m-%d")
today = datetime.datetime.strptime(today_str, "%Y-%m-%d")
today + datetime.timedelta(hours=8)
Calendar模組有很廣泛的方法用來處理年曆和月曆,例如列印某月的月曆:
import calendar cal = calendar.month(2016, 1) print ("以下輸出2016年1月份的日曆:") print (cal)
以上範例輸出結果:
以下輸出2016年1月份的日曆: January 2016 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
星期一是預設的每週第一天,星期天是預設的最後一天。更改設定需呼叫calendar.setfirstweekday()函數。
安裝方法:
pip install sxtwl
Windows下的二進位制安裝包:https://pan.baidu.com/s/1VR4MtPVV9iP9SSHNDjKZnQ
# 引入日曆庫模組 import sxtwl # 日曆中文索引 ymc = ["十一", "臘", "正", "二", "三", "四", "五", "六", "七", "八", "九", "十"] rmc = ["初一", "初二", "初三", "初四", "初五", "初六", "初七", "初八", "初九", "初十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "廿一", "廿二", "廿三", "廿四", "廿五", "廿六", "廿七", "廿八", "廿九", "三十", "卅一"] # 範例化日曆庫 lunar = sxtwl.Lunar() # 陰曆轉陽曆 day = lunar.getDayByLunar(2030, 3, 27, False) # 公元前的年可以用負數表示。比如公交前20年就用-20 print(u"公曆:", day.y, u"年", day.m, u"月", day.d, u"日") if day.Lleap: print(u"陰曆:潤", ymc[day.Lmc], u"月", rmc[day.Ldi], u"日") else: print(u"陰曆:", ymc[day.Lmc], u"月", rmc[day.Ldi], u"日") # 同理,陽曆轉陰曆 day = lunar.getDayBySolar(2018, 10, 20) print(u"公曆:", day.y, u"年", day.m, u"月", day.d, u"日") if day.Lleap: print(u"陰曆:潤", ymc[day.Lmc], u"月", rmc[day.Ldi], u"日") else: print(u"陰曆:", ymc[day.Lmc], u"月", rmc[day.Ldi], u"日")
更加詳細的使用方法請參考:
https://pypi.org/project/sxtwl/
到此這篇關於Python標準庫之日期、時間和日曆模組的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援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