Python3.5內(nèi)置模塊之time與datetime模塊用法實(shí)例分析
本文實(shí)例講述了Python3.5內(nèi)置模塊之time與datetime模塊用法。分享給大家供大家參考,具體如下:
1、模塊的分類
a、標(biāo)準(zhǔn)庫(Python自帶):sys、os模塊
b、開源模塊(第三方模塊)
c、自定義模塊
2、內(nèi)建模塊——time


(1)在Python中通常用以下幾種方式來表示時(shí)間:
a、時(shí)間戳:從1970年1月1日開始到當(dāng)下的時(shí)間的秒數(shù),導(dǎo)入time模塊(import time),調(diào)用time.time()方法即可。
b、格式化的時(shí)間字符串。
c、元組(struct_time),共九個(gè)元素,調(diào)用time.localtime()。
由于Python的time模塊實(shí)現(xiàn)主要調(diào)用C庫,各個(gè)平臺(tái)可能有所不同。


(2)代碼
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu
import time
print(time.time()) #獲取時(shí)間戳
time.sleep(2) #睡2秒
print(time.time()) #獲取時(shí)間戳
print(time.gmtime()) #獲取當(dāng)前世界標(biāo)準(zhǔn)時(shí)間UTC
print(time.localtime()) #獲取當(dāng)前本地時(shí)間
print(time.localtime(1234567890)) #將時(shí)間戳轉(zhuǎn)換成元組形式
x = time.localtime()
print(x.tm_year) #獲取本地時(shí)間的年份
print("this is 2017 day:%d" %x.tm_yday)
print(time.mktime(x)) #將元組形式轉(zhuǎn)換成時(shí)間戳
#將struct_time轉(zhuǎn)化成格式化字符串的形式
#print(time.strftime("%Y-%m-%d %H:%M:%S"),x)
print(time.strftime("%Y-%m-%d %H:%M:%S"),time.localtime()) # %Y:x.tm_year %m:x.tm_mon 順序可以打亂
#將格式化字符串的形式轉(zhuǎn)化成struct_time
print(time.strptime("2017-09-28 19:00:47","%Y-%m-%d %H:%M:%S")) #x.tm_year:2017,x.tm_mon:09 位置順序必須一一對(duì)應(yīng)
print(time.asctime()) #結(jié)構(gòu)化的元組形式轉(zhuǎn)換成形如:周月日時(shí)分秒年的形式
print(time.ctime()) #將時(shí)間戳轉(zhuǎn)化成形如:周月日時(shí)分秒年的形式
運(yùn)行結(jié)果:
1506598454.9637923
1506598456.9639068
time.struct_time(tm_year=2017, tm_mon=9, tm_mday=28, tm_hour=11, tm_min=34, tm_sec=16, tm_wday=3, tm_yday=271, tm_isdst=0)
time.struct_time(tm_year=2017, tm_mon=9, tm_mday=28, tm_hour=19, tm_min=34, tm_sec=16, tm_wday=3, tm_yday=271, tm_isdst=0)
time.struct_time(tm_year=2009, tm_mon=2, tm_mday=14, tm_hour=7, tm_min=31, tm_sec=30, tm_wday=5, tm_yday=45, tm_isdst=0)
2017
this is 2017 day:271
1506598456.0
2017-09-28 19:34:16 time.struct_time(tm_year=2017, tm_mon=9, tm_mday=28, tm_hour=19, tm_min=34, tm_sec=16, tm_wday=3, tm_yday=271, tm_isdst=0)
time.struct_time(tm_year=2017, tm_mon=9, tm_mday=28, tm_hour=19, tm_min=0, tm_sec=47, tm_wday=3, tm_yday=271, tm_isdst=-1)
Thu Sep 28 19:34:17 2017
Thu Sep 28 19:34:17 2017
(3)幾種表示時(shí)間的相互轉(zhuǎn)化


#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu
import time #導(dǎo)入時(shí)間模塊
#1.返回當(dāng)前時(shí)間戳
t = time.time()
print("Current time:",t)
#2.將時(shí)間戳轉(zhuǎn)換成當(dāng)?shù)貢r(shí)間的時(shí)間元祖
tup1 = time.localtime(t)
print(tup1)
#年:tm_year,月:tm_mon,日:tm_mday
print("年份:",tup1.tm_year)
print("月份:",tup1.tm_mon)
print("日期:",tup1.tm_mday)
#3.將時(shí)間元組轉(zhuǎn)換為時(shí)間戳(毫秒會(huì)忽略)
print("Timestamp is:",time.mktime(tup1))
#4.0 獲取CPU運(yùn)行時(shí)間來獲取比較精準(zhǔn)的秒數(shù),一般用于時(shí)間間隔的獲取或比較
#4.1 休眠/停止一段時(shí)間,指定需要停止的秒數(shù)
print("開始時(shí)間:",time.clock())
time.sleep(3)
print("結(jié)束時(shí)間1:",time.clock())
time.sleep(3)
print("結(jié)束時(shí)間2:",time.clock())
#5.時(shí)間元組轉(zhuǎn)化成格式化時(shí)間字符串
tm_str = time.strftime("%Y-%m-%d %H:%M:%S",tup1)
print("格式化時(shí)間字符串:",tm_str)
#等價(jià)于
print("格式化時(shí)間字符串:",time.strftime("%Y-%m-%d %H:%M:%S",tup1))
#6.格式化時(shí)間字符串轉(zhuǎn)化成時(shí)間元組
tup2 = time.strptime(tm_str,"%Y-%m-%d %H:%M:%S")
print("時(shí)間元組:",tup2)
#等價(jià)于
print("時(shí)間元組:",time.strptime(tm_str,"%Y-%m-%d %H:%M:%S"))
運(yùn)行結(jié)果:
Current time: 1509503024.233398
time.struct_time(tm_year=2017, tm_mon=11, tm_mday=1, tm_hour=10, tm_min=23, tm_sec=44, tm_wday=2, tm_yday=305, tm_isdst=0)
年份: 2017
月份: 11
日期: 1
Timestamp is: 1509503024.0
開始時(shí)間: 1.399506347461039e-06
結(jié)束時(shí)間1: 2.9997266297601293
結(jié)束時(shí)間2: 5.999885706981624
格式化時(shí)間字符串: 2017-11-01 10:23:44
格式化時(shí)間字符串: 2017-11-01 10:23:44
時(shí)間元組: time.struct_time(tm_year=2017, tm_mon=11, tm_mday=1, tm_hour=10, tm_min=23, tm_sec=44, tm_wday=2, tm_yday=305, tm_isdst=-1)
時(shí)間元組: time.struct_time(tm_year=2017, tm_mon=11, tm_mday=1, tm_hour=10, tm_min=23, tm_sec=44, tm_wday=2, tm_yday=305, tm_isdst=-1)
3、內(nèi)建模塊——datatime
(1)datatime.data——日期(年月日)
(2)datatime.time——時(shí)間(時(shí)分秒)
(3)datatime.datatime——日期+時(shí)間(年月日時(shí)分秒)
代碼舉例:
import datetime print(datetime.datetime.now()) #獲取當(dāng)前時(shí)間 print(datetime.datetime.now()+datetime.timedelta(3)) #當(dāng)前時(shí)間的后三天 print(datetime.datetime.now()+datetime.timedelta(-3)) #當(dāng)前時(shí)間的前三天 print(datetime.datetime.now()+datetime.timedelta(hours=3)) #當(dāng)前時(shí)間的后三個(gè)小時(shí) print(datetime.datetime.now()+datetime.timedelta(minutes=-3)) #當(dāng)前時(shí)間的前三分鐘 c_time = datetime.datetime.now() print(c_time.replace(minute=2,hour=3)) #對(duì)當(dāng)前時(shí)間的替換
運(yùn)行結(jié)果:
2017-09-28 19:54:40.167870
2017-10-01 19:54:40.167870
2017-09-25 19:54:40.167870
2017-09-28 22:54:40.167870
2017-09-28 19:51:40.167870
2017-09-28 03:02:40.167870
PS:這里再為大家推薦幾款關(guān)于日期與天數(shù)計(jì)算的在線工具供大家使用:
在線日期/天數(shù)計(jì)算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi
在線萬年歷日歷:
http://tools.jb51.net/bianmin/wannianli
在線陰歷/陽歷轉(zhuǎn)換工具:
http://tools.jb51.net/bianmin/yinli2yangli
Unix時(shí)間戳(timestamp)轉(zhuǎn)換工具:
http://tools.jb51.net/code/unixtime
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python日期與時(shí)間操作技巧總結(jié)》、《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python實(shí)現(xiàn)得到一個(gè)給定類的虛函數(shù)
這篇文章主要介紹了python實(shí)現(xiàn)得到一個(gè)給定類的虛函數(shù)的方法,以wx的PyPanel類為例講述了打印以base_開頭的方法的實(shí)例,需要的朋友可以參考下2014-09-09
python實(shí)現(xiàn)b站直播自動(dòng)發(fā)送彈幕功能
這篇文章主要介紹了python如何實(shí)現(xiàn)b站直播自動(dòng)發(fā)送彈幕,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-02-02
Selenium 模擬瀏覽器動(dòng)態(tài)加載頁面的實(shí)現(xiàn)方法
這篇文章主要介紹了Selenium 模擬瀏覽器動(dòng)態(tài)加載頁面的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05
Python使用eval函數(shù)解析和執(zhí)行字符串
在Python中,eval函數(shù)是一個(gè)非常強(qiáng)大的函數(shù),它可以將字符串作為代碼進(jìn)行解析和執(zhí)行,本文主要介紹了如何使用eval函數(shù)解析和執(zhí)行字符串,需要的可以了解下2024-01-01
python binascii 進(jìn)制轉(zhuǎn)換實(shí)例
今天小編就為大家分享一篇python binascii 進(jìn)制轉(zhuǎn)換實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06
使用Python和百度語音識(shí)別生成視頻字幕的實(shí)現(xiàn)
這篇文章主要介紹了使用Python和百度語音識(shí)別生成視頻字幕,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
python 中 .py文件 轉(zhuǎn) .pyd文件的操作
這篇文章主要介紹了python 中 .py文件 轉(zhuǎn) .pyd文件的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03
python實(shí)現(xiàn)的批量分析xml標(biāo)簽中各個(gè)類別個(gè)數(shù)功能示例
這篇文章主要介紹了python實(shí)現(xiàn)的批量分析xml標(biāo)簽中各個(gè)類別個(gè)數(shù)功能,涉及Python針對(duì)xml文件的遍歷、讀取、解析等相關(guān)操作技巧,需要的朋友可以參考下2019-12-12
Pytest執(zhí)行unittest TestSuite(測(cè)試套件)的實(shí)現(xiàn)方法
TestSuite一直是unittest的靈活與精髓之處,在繁多的測(cè)試用例中,可以任意挑選和組合各種用例集,這篇文章主要介紹了Pytest執(zhí)行unittest TestSuite(測(cè)試套件)的實(shí)現(xiàn)方法,需要的朋友可以參考下2021-08-08

