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:這里再為大家推薦幾款關于日期與天數(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
更多關于Python相關內(nèi)容感興趣的讀者可查看本站專題:《Python日期與時間操作技巧總結(jié)》、《Python數(shù)學運算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設計有所幫助。
相關文章
詳解如何使用Python處理INI、YAML和JSON配置文件
在軟件開發(fā)中,配置文件是存儲程序配置信息的常見方式,INI、YAML和JSON是常用的配置文件格式,各自有著特定的結(jié)構(gòu)和用途,Python擁有豐富的庫和模塊,本文將重點探討如何使用Python處理這三種格式的配置文件,需要的朋友可以參考下2023-12-12python中from module import * 的一個坑
from module import *把module中的成員全部導到了當前的global namespace,訪問起來就比較方便了。當然,python style一般不建議這么做,因為可能引起name conflict。2014-07-07關于Python Tkinter Button控件command傳參問題的解決方式
這篇文章主要介紹了關于Python Tkinter Button控件command傳參問題的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03python fabric實現(xiàn)遠程操作和部署示例
這篇文章主要介紹了python使用fabric實現(xiàn)遠程操作和部署示例,需要的朋友可以參考下2014-03-03