利用Python自帶的time模塊,time.time()獲取當(dāng)前的時間(以秒為單位),利用兩次獲取time.time()的時間差“==1”,即可確定時間過去了1秒。
創(chuàng)新互聯(lián)建站服務(wù)項目包括大埔網(wǎng)站建設(shè)、大埔網(wǎng)站制作、大埔網(wǎng)頁制作以及大埔網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,大埔網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到大埔省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
如要求時間過去1秒后才可以執(zhí)行后面的代碼有兩種方式:
(1)import time
time_before = time.time()
time_after = time.time()
while time_after - time_before 1:
time_after = time.time()
......................................后續(xù)代碼
(2)import time
time.sleep(1)? ? #讓代碼在這里休息1秒鐘生再執(zhí)行后面的代碼
......................................后續(xù)代碼
Python 程序能用很多方式處理日期和時間,轉(zhuǎn)換日期格式是一個常見的功能。
Python 提供了一個 time 和 calendar 模塊可以用于格式化日期和時間。
時間間隔是以秒為單位的浮點小數(shù)。
每個時間戳都以自從1970年1月1日午夜(歷元)經(jīng)過了多長時間來表示。
Python 的 time 模塊下有很多函數(shù)可以轉(zhuǎn)換常見日期格式。如函數(shù)time.time()用于獲取當(dāng)前時間戳, 如下實例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time; # 引入time模塊
ticks = time.time()
print "當(dāng)前時間戳為:", ticks
以上實例輸出結(jié)果:
當(dāng)前時間戳為: 1459994552.51
時間戳單位最適于做日期運算。但是1970年之前的日期就無法以此表示了。太遙遠(yuǎn)的日期也不行,UNIX和Windows只支持到2038年。
什么是時間元組?
很多Python函數(shù)用一個元組裝起來的9組數(shù)字處理時間:
序號
字段
值
0 4位數(shù)年 2008
1 月 1 到 12
2 日 1到31
3 小時 0到23
4 分鐘 0到59
5 秒 0到61 (60或61 是閏秒)
6 一周的第幾日 0到6 (0是周一)
7 一年的第幾日 1到366 (儒略歷)
8 夏令時 -1, 0, 1, -1是決定是否為夏令時的旗幟
上述也就是struct_time元組。這種結(jié)構(gòu)具有如下屬性:
序號
屬性
值
0 tm_year 2008
1 tm_mon 1 到 12
2 tm_mday 1 到 31
3 tm_hour 0 到 23
4 tm_min 0 到 59
5 tm_sec 0 到 61 (60或61 是閏秒)
6 tm_wday 0到6 (0是周一)
7 tm_yday 1 到 366(儒略歷)
8 tm_isdst -1, 0, 1, -1是決定是否為夏令時的旗幟
獲取當(dāng)前時間
從返回浮點數(shù)的時間輟方式向時間元組轉(zhuǎn)換,只要將浮點數(shù)傳遞給如localtime之類的函數(shù)。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time
localtime = time.localtime(time.time())
print "本地時間為 :", localtime
以上實例輸出結(jié)果:
本地時間為 : time.struct_time(tm_year=2016, tm_mon=4, tm_mday=7, tm_hour=10, tm_min=3, tm_sec=27, tm_wday=3, tm_yday=98, tm_isdst=0)
獲取格式化的時間
你可以根據(jù)需求選取各種格式,但是最簡單的獲取可讀的時間模式的函數(shù)是asctime():
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time
localtime = time.asctime( time.localtime(time.time()) )
print "本地時間為 :", localtime
以上實例輸出結(jié)果:
本地時間為 : Thu Apr 7 10:05:21 2016
格式化日期
我們可以使用 time 模塊的 strftime 方法來格式化日期,:
time.strftime(format[, t])
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time
# 格式化成2016-03-20 11:45:39形式
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
# 格式化成Sat Mar 28 22:24:24 2016形式
print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())
# 將格式字符串轉(zhuǎn)換為時間戳
a = "Sat Mar 28 22:24:24 2016"
print time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))
以上實例輸出結(jié)果:
2016-04-07 10:25:09
Thu Apr 07 10:25:09 2016
1459175064.0
python中時間日期格式化符號:
%y 兩位數(shù)的年份表示(00-99)
%Y 四位數(shù)的年份表示(000-9999)
%m 月份(01-12)
%d 月內(nèi)中的一天(0-31)
%H 24小時制小時數(shù)(0-23)
%I 12小時制小時數(shù)(01-12)
%M 分鐘數(shù)(00=59)
%S 秒(00-59)
%a 本地簡化星期名稱
%A 本地完整星期名稱
%b 本地簡化的月份名稱
%B 本地完整的月份名稱
%c 本地相應(yīng)的日期表示和時間表示
%j 年內(nèi)的一天(001-366)
%p 本地A.M.或P.M.的等價符
%U 一年中的星期數(shù)(00-53)星期天為星期的開始
%w 星期(0-6),星期天為星期的開始
%W 一年中的星期數(shù)(00-53)星期一為星期的開始
%x 本地相應(yīng)的日期表示
%X 本地相應(yīng)的時間表示
%Z 當(dāng)前時區(qū)的名稱
%% %號本身
獲取某月日歷
Calendar模塊有很廣泛的方法用來處理年歷和月歷,例如打印某月的月歷:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import calendar
cal = calendar.month(2016, 1)
print "以下輸出2016年1月份的日歷:"
print cal;
以上實例輸出結(jié)果:
以下輸出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
Time 模塊
Time 模塊包含了以下內(nèi)置函數(shù),既有時間處理相的,也有轉(zhuǎn)換時間格式的:
序號
函數(shù)及描述
1 time.altzone
返回格林威治西部的夏令時地區(qū)的偏移秒數(shù)。如果該地區(qū)在格林威治東部會返回負(fù)值(如西歐,包括英國)。對夏令時啟用地區(qū)才能使用。
2 time.asctime([tupletime])
接受時間元組并返回一個可讀的形式為"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18時07分14秒)的24個字符的字符串。
3 time.clock( )
用以浮點數(shù)計算的秒數(shù)返回當(dāng)前的CPU時間。用來衡量不同程序的耗時,比time.time()更有用。
4 time.ctime([secs])
作用相當(dāng)于asctime(localtime(secs)),未給參數(shù)相當(dāng)于asctime()
5 time.gmtime([secs])
接收時間輟(1970紀(jì)元后經(jīng)過的浮點秒數(shù))并返回格林威治天文時間下的時間元組t。注:t.tm_isdst始終為0
6 time.localtime([secs])
接收時間輟(1970紀(jì)元后經(jīng)過的浮點秒數(shù))并返回當(dāng)?shù)貢r間下的時間元組t(t.tm_isdst可取0或1,取決于當(dāng)?shù)禺?dāng)時是不是夏令時)。
7 time.mktime(tupletime)
接受時間元組并返回時間輟(1970紀(jì)元后經(jīng)過的浮點秒數(shù))。
8 time.sleep(secs)
推遲調(diào)用線程的運行,secs指秒數(shù)。
9 time.strftime(fmt[,tupletime])
接收以時間元組,并返回以可讀字符串表示的當(dāng)?shù)貢r間,格式由fmt決定。
10 time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')
根據(jù)fmt的格式把一個時間字符串解析為時間元組。
11 time.time( )
返回當(dāng)前時間的時間戳(1970紀(jì)元后經(jīng)過的浮點秒數(shù))。
12 time.tzset()
根據(jù)環(huán)境變量TZ重新初始化時間相關(guān)設(shè)置。
Time模塊包含了以下2個非常重要的屬性:
序號
屬性及描述
1 time.timezone
屬性time.timezone是當(dāng)?shù)貢r區(qū)(未啟動夏令時)距離格林威治的偏移秒數(shù)(0,美洲;=0大部分歐洲,亞洲,非洲)。
2 time.tzname
屬性time.tzname包含一對根據(jù)情況的不同而不同的字符串,分別是帶夏令時的本地時區(qū)名稱,和不帶的。
日歷(Calendar)模塊
此模塊的函數(shù)都是日歷相關(guān)的,例如打印某月的字符月歷。
星期一是默認(rèn)的每周第一天,星期天是默認(rèn)的最后一天。更改設(shè)置需調(diào)用calendar.setfirstweekday()函數(shù)。模塊包含了以下內(nèi)置函數(shù):
序號
函數(shù)及描述
1 calendar.calendar(year,w=2,l=1,c=6)
返回一個多行字符串格式的year年年歷,3個月一行,間隔距離為c。 每日寬度間隔為w字符。每行長度為21* W+18+2* C。l是每星期行數(shù)。
2 calendar.firstweekday( )
返回當(dāng)前每周起始日期的設(shè)置。默認(rèn)情況下,首次載入caendar模塊時返回0,即星期一。
3 calendar.isleap(year)
是閏年返回True,否則為false。
4 calendar.leapdays(y1,y2)
返回在Y1,Y2兩年之間的閏年總數(shù)。
5 calendar.month(year,month,w=2,l=1)
返回一個多行字符串格式的year年month月日歷,兩行標(biāo)題,一周一行。每日寬度間隔為w字符。每行的長度為7* w+6。l是每星期的行數(shù)。
6 calendar.monthcalendar(year,month)
返回一個整數(shù)的單層嵌套列表。每個子列表裝載代表一個星期的整數(shù)。Year年month月外的日期都設(shè)為0;范圍內(nèi)的日子都由該月第幾日表示,從1開始。
7 calendar.monthrange(year,month)
返回兩個整數(shù)。第一個是該月的星期幾的日期碼,第二個是該月的日期碼。日從0(星期一)到6(星期日);月從1到12。
8 calendar.prcal(year,w=2,l=1,c=6)
相當(dāng)于 print calendar.calendar(year,w,l,c).
9 calendar.prmonth(year,month,w=2,l=1)
相當(dāng)于 print calendar.calendar(year,w,l,c)。
10 calendar.setfirstweekday(weekday)
設(shè)置每周的起始日期碼。0(星期一)到6(星期日)。
11 calendar.timegm(tupletime)
和time.gmtime相反:接受一個時間元組形式,返回該時刻的時間輟(1970紀(jì)元后經(jīng)過的浮點秒數(shù))。
12 calendar.weekday(year,month,day)
返回給定日期的日期碼。0(星期一)到6(星期日)。月份為 1(一月) 到 12(12月)。
你是用pyExcelerator還是xlrd讀的excel?如果是xlrd那它自帶一個xldate_as_tuple函數(shù),可以轉(zhuǎn)成datetime,比如:
from datetime import datetime
from xlrd import xldate_as_tuple
d=datetime(*xldate_as_tuple(x,0))#x就是你那串?dāng)?shù)字的變量
如果是用pyExcelerator,那好象它沒有類似的函數(shù),可以用下面這個函數(shù):
def xldate_as_datetime(xldate, datemode=0):
if datemode not in (0, 1):
raise XLDateBadDatemode(datemode)
if xldate == 0.00:
return datetime.time(0, 0, 0)
if xldate 0.00:
raise XLDateNegative(xldate)
xldays = int(xldate)
frac = xldate - xldays
seconds = int(round(frac * 86400.0))
assert 0 = seconds = 86400
if seconds == 86400:
seconds = 0
xldays += 1
#if xldays = _XLDAYS_TOO_LARGE[datemode]:
# raise XLDateTooLarge(xldate)
if xldays == 0:
# second = seconds % 60; minutes = seconds // 60
minutes, second = divmod(seconds, 60)
# minute = minutes % 60; hour = minutes // 60
hour, minute = divmod(minutes, 60)
return datetime.time(hour, minute, second)
if xldays 61 and datemode == 0:
raise XLDateAmbiguous(xldate)
return (
datetime.datetime.fromordinal(xldays + 693594 + 1462 * datemode)
+ datetime.timedelta(seconds=seconds)
)
用法:
d=xldate_as_datetime(x)#x就是你那串?dāng)?shù)字的變量
程序分析,特殊情況,閏年時需考慮二月多加一天。
先判斷是否是閏年,然后再利用求和,得出某一天是第幾天,使用datetime模塊,使用內(nèi)置函數(shù)strftime。
strftime是一種計算機函數(shù),根據(jù)區(qū)域設(shè)置格式化本地時間/日期,函數(shù)的功能將時間格式化,或者說格式化一個時間字符串。
任何數(shù)據(jù)庫本身都有自己的日期/時間函數(shù),做日期比較,最好使用數(shù)據(jù)庫函數(shù)比較。
這是因為,運行python的主機和數(shù)據(jù)庫主機可能是不同的,系統(tǒng)時間也不一定同步。
不過,若是非要用python來實現(xiàn),可以這樣做:
#!/usr/bin/env?python
#?-*-?coding:?utf-8?-*-
import?time
def?now():
return?time.strftime('%Y-%m-%d?%H:%M:%S',time.localtime(time.time()))
s?=?'2015-10-26?00:00:00'
if?now()??s:
print?'過期'
分享題目:python檢驗日期函數(shù),python日期判斷
路徑分享:http://jinyejixie.com/article8/dssoeop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站改版、網(wǎng)站維護、網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)