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


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


(2)代碼
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu
import time
print(time.time()) #獲取時間戳
time.sleep(2) #睡2秒
print(time.time()) #獲取時間戳
print(time.gmtime()) #獲取當前世界標準時間UTC
print(time.localtime()) #獲取當前本地時間
print(time.localtime(1234567890)) #將時間戳轉(zhuǎn)換成元組形式
x = time.localtime()
print(x.tm_year) #獲取本地時間的年份
print("this is 2017 day:%d" %x.tm_yday)
print(time.mktime(x)) #將元組形式轉(zhuǎn)換成時間戳
#將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 位置順序必須一一對應
print(time.asctime()) #結(jié)構(gòu)化的元組形式轉(zhuǎn)換成形如:周月日時分秒年的形式
print(time.ctime()) #將時間戳轉(zhuǎ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)幾種表示時間的相互轉(zhuǎn)化


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

