time 模塊
>>> import time
>>> dir(time)
['__doc__', '__name__', '__package__', 'accept2dyear', 'altzone', 'asctime', 'cl
ock', 'ctime', 'daylight', 'gmtime', 'localtime', 'mktime', 'sleep', 'strftime',
'strptime', 'struct_time', 'time', 'timezone', 'tzname']
包含的變量:
timezone -- 當地時間與標準UTC時間的誤差,以秒計
altzone -- 當地夏令時時間與標準UTC時間的誤差,以秒計
daylight -- 當地時間是否反映夏令時,默認為0
tzname -- 關于(標準時區名稱, 夏令時時區名稱)的元組
包含的函數:
time() -- 返回當前時間戳,浮點數形式。不接受參數
clock() -- 返回當前程序的cpu執行時間。unix系統始終返回全部運行時間;而windows從第二次開始都是以第一次調用此函數時的時間戳作為基準,而不是程序開始時間為基準。不接受參數。
sleep() -- 延遲一個時間段,接受整型、浮點型。
gmtime() -- 將時間戳轉換為UTC時間元組格式。接受一個浮點型時間戳參數,其默認值為當前時間戳。
localtime() -- 將時間戳轉換為本地時間元組格式。接受一個浮點型時間戳參數,其默認值為當前時間戳。
asctime() -- 將時間元組格式轉換為字符串形式。接受一個時間元組,其默認值為localtime()返回值
ctime() -- 將時間戳轉換為字符串。接受一個時間戳,其默認值為當前時間戳。等價于asctime(localtime(seconds))
mktime() -- 將本地時間元組轉換為時間戳。接受一個時間元組,必選。
strftime() -- 將時間元組以指定的格式轉換為字符串形式。接受字符串格式化串、時間元組。時間元組為可選,默認為localtime()
strptime() -- 將指定格式的時間字符串解析為時間元組,strftime()的逆向過程。接受字符串,時間格式2個參數,都是必選。
tzset() -- 改變本地時區。
# !/usr/bin/python
# -*- coding:utf-8 -*-
import time
#當前時間
print time.time()
#時間戳形式
print time.localtime(time.time())
#簡單可讀形式
print time.asctime( time.localtime(time.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())
# 將格式字符串轉換為時間戳
a = "Sat Mar 28 22:24:24 2016"
print time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))
例2:某時間與當前比較,如果大于當前時間則調用某個腳本,否則等待半個小時候后繼續判斷
# -*- coding:utf-8 -*-
import time
import sys
import os
#判斷當前時間是否超過某個輸入的時間
def Fuctime(s):
if time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))>s:
return True
else:
return False
while(1):
if Fuctime('2016-12-05 00:00:00'):
#調用某個路徑下的腳本的簡便方法
os.system("python ./../day_2/Prime.py")
break
else:
time.sleep(1800)
continue
datetime 模塊
datetime模塊定義了兩個常量:datetime.MINYEAR、datetime.MAXYEAR
MINYEAR = 1
MAXYEAR = 9999。
1. datetime模塊:
datetime.date:表示日期的類。常用的屬性有year, month, day;
datetime.time:表示時間的類。常用的屬性有hour, minute, second, microsecond;
datetime.datetime:表示日期時間。
datetime.timedelta:表示時間間隔,即兩個時間點之間的長度。
datetime.tzinfo:與時區有關的相關信息。
2. date類:
date類表示一個日期。
date類的構造函數如下:
class datetime.date(year, month, day)
year 的范圍是[MINYEAR, MAXYEAR],即[1, 9999];
month 的范圍是[1, 12]。(月份是從1開始的,不是從0開始的_);
day 的最大值根據給定的year, month參數來決定。例如閏年2月份有29天;
date類定義了一些常用的類方法與類屬性,方便我們操作:
date.max、date.min:date對象所能表示的最大、最小日期;
date.resolution:date對象表示日期的最小單位。這里是天。
date.today():返回一個表示當前本地日期的date對象;
date.fromtimestamp(timestamp):根據給定的時間戮,返回一個date對象;
datetime.fromordinal(ordinal):將Gregorian日歷時間轉換為date對象;
date提供的實例方法和屬性:
date.year、date.month、date.day:年、月、日;
date.replace(year, month, day):生成一個新的日期對象,用參數指定的年,月,日代替原有對象中的屬性。(原有對象仍保持不變)
date.timetuple():返回日期對應的time.struct_time對象;
date.toordinal():返回日期對應的Gregorian Calendar日期;
date.weekday():返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此類推;
data.isoweekday():返回weekday,如果是星期一,返回1;如果是星期2,返回2,以此類推;
date.isocalendar():返回格式如(year,month,day)的元組;
date.isoformat():返回格式如'YYYY-MM-DD’的字符串;
date.strftime(fmt):自定義格式化字符串。在下面詳細講解。
3. Time類
time類表示時間,由時、分、秒以及微秒組成。
time類的構造函數如下:
class datetime.time(hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ) :各參數的意義不作解釋,這里留意一下參數tzinfo,它表示時區信息。注意一下各參數的取值范圍:hour的范圍為[0, 24),minute的范圍為[0, 60),second的范圍為[0, 60),microsecond的范圍為[0, 1000000)。
time類定義的類屬性:
time.min、time.max:time類所能表示的最小、最大時間。
其中,time.min = time(0, 0, 0, 0), time.max = time(23, 59, 59, 999999);
time.resolution:時間的最小單位,這里是1微秒;
time類提供的實例方法和屬性:
time.hour、time.minute、time.second、time.microsecond:時、分、秒、微秒;
time.tzinfo:時區信息;
time.replace([ hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ]):創建一個新的時間對象,用參數指定的時、分、秒、微秒代替原有對象中的屬性(原有對象仍保持不變);
time.isoformat():返回型如"HH:MM:SS"格式的字符串表示;
time.strftime(fmt):返回自定義格式化字符串。在下面詳細介紹;
4. datetime類
datetime是date與time的結合體,包括date與time的所有信息。
它的構造函數如下:
datetime.datetime (year, month, day[ , hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] ),各參數的含義與date、time的構造函數中的一樣,要注意參數值的范圍。
datetime類定義的類屬性與方法:
datetime.min、datetime.max:datetime所能表示的最小值與最大值;
datetime.resolution:datetime最小單位;
datetime.today():返回一個表示當前本地時間的datetime對象;
datetime.now([tz]) :返回一個表示當前本地時間的datetime對象,如果提供了參數tz,則獲取tz參數所指時區的本地時間;
datetime.utcnow() :返回一個當前utc時間的datetime對象;
datetime.fromtimestamp(timestamp[, tz]):根據時間戮創建一個datetime對象,參數tz指定時區信息;
datetime.utcfromtimestamp(timestamp) :根據時間戮創建一個datetime對象;
datetime.combine(date, time) :根據date和time,創建一個datetime對象;
datetime.strptime(date_string, format) :將格式字符串轉換為datetime對象;
格式字符串
%a 星期的簡寫。如 星期三為Web
%A 星期的全寫。如 星期三為Wednesday
%b 月份的簡寫。如4月份為Apr
%B月份的全寫。如4月份為April
%c: 日期時間的字符串表示。(如: 04/07/10 10:43:39)
%d: 日在這個月中的天數(是這個月的第幾天)
%f: 微秒(范圍[0,999999])
%H: 小時(24小時制,[0, 23])
%I: 小時(12小時制,[0, 11])
%j: 日在年中的天數 [001,366](是當年的第幾天)
%m: 月份([01,12])
%M: 分鐘([00,59])
%p: AM或者PM
%S: 秒(范圍為[00,61],為什么不是[00, 59],參考python手冊_)
%U: 周在當年的周數當年的第幾周),星期天作為周的第一天
%w: 今天在這周的天數,范圍為[0, 6],6表示星期天
%W: 周在當年的周數(是當年的第幾周),星期一作為周的第一天
%x: 日期字符串(如:04/07/10)
%X: 時間字符串(如:10:43:39)
%y: 2個數字表示的年份
%Y: 4個數字表示的年份
%z: 與utc時間的間隔 (如果是本地時間,返回空字符串)
%Z: 時區名稱(如果是本地時間,返回空字符串)
%%: %% => %