http://www.open-open.com/lib/view/open1479363382807.html
class my_datetime(): """ Basic usage: a = datetime.datetime(2016, 9, 21, 13, 42, 8) b = "2016-11-15 15:32:12" c = u'2016-09-21 13:37:34' print type(c) d = 1474436826.0 e = 13710788676.0 ret = my_datetime() res = ret.become_datetime(e) print res print type(res) """ def __init__(self): # 缺乏對utc時間的判斷 pass def become_timestamp(self, dtdt): # 將時間類型轉換成時間戳 if isinstance(dtdt, datetime.datetime): timestamp = time.mktime(dtdt.timetuple()) return timestamp elif isinstance(dtdt, str): if dtdt.split(" ")[1:]: a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d %H:%M:%S") timestamp = time.mktime(a_datetime.timetuple()) else: a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d") timestamp = time.mktime(a_datetime.timetuple()) return timestamp elif isinstance(dtdt, float): return dtdt # elif isinstance(dtdt, unicode): # if dtdt.split(" ")[1:]: # a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d %H:%M:%S") # timestamp = time.mktime(a_datetime.timetuple()) # else: # a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d") # timestamp = time.mktime(a_datetime.timetuple()) # return timestamp def become_datetime(self, dtdt): # 將時間類型轉換成datetime類型 if isinstance(dtdt, datetime.datetime): return dtdt elif isinstance(dtdt, str): if dtdt.split(" ")[1:]: a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d %H:%M:%S") else: a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d") return a_datetime elif isinstance(dtdt, float): # 把時間戳轉換成datetime類型 a_datetime = datetime.datetime.fromtimestamp(dtdt) return a_datetime # elif isinstance(dtdt, unicode): # if dtdt.split(" ")[1:]: # a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d %H:%M:%S") # else: # a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d") # return a_datetime def become_str(self, dtdt): # 把時間類型轉換成字符串 if isinstance(dtdt, datetime.datetime): a_datetime = dtdt.strftime("%Y-%m-%d %H:%M:%S") return a_datetime elif isinstance(dtdt, str): return dtdt elif isinstance(dtdt, float): a_datetime_local = datetime.datetime.fromtimestamp(dtdt) a_datetime = a_datetime_local.strftime("%Y-%m-%d %H:%M:%S") return a_datetime # elif isinstance(dtdt, unicode): # # 區別:一個是strp, 一個是strf # if dtdt.split(" ")[1:]: # a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d %H:%M:%S") # a_datetime = a_datetime.strftime("%Y-%m-%d %H:%M:%S") # else: # a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d") # a_datetime = a_datetime.strftime("%Y-%m-%d") # return a_datetime @staticmethod def str_datetime(): return (datetime.datetime.now()).strftime("%Y-%m-%d %H:%M:%S")
time模塊提供各類操做時間的函數javascript
說明:通常有兩種表示時間的方式:
1.時間戳的方式(相對於1970.1.1 00:00:00以秒計算的偏移量),時間戳是唯一的
html
2.以數組的形式表示即(struct_time),共有九個元素,分別表示,同一個時間戳的struct_time會由於時區不一樣而不一樣java
The tuple items are: year (including century, e.g. 1998) month (1-12) day (1-31) hours (0-23) minutes (0-59) seconds (0-59) weekday (0-6, Monday is 0) Julian day (day in the year, 1-366) DST (Daylight Savings Time) flag (-1, 0 or 1)
1 time() -- 返回時間戳 2 sleep() -- 延遲運行單位爲s 3 gmtime() -- 轉換時間戳爲時間元組(時間元組) 4 localtime() -- 轉換時間戳爲本地時間對象 5 asctime() -- 將時間對象轉換爲字符串 6 ctime() -- 將使勁按戳轉換爲字符串 7 mktime() -- 將本地時間轉換爲時間戳 8 strftime() -- 將時間對象轉換爲規範性字符串
經常使用的格式代碼:數組
1 %Y Year with century as a decimal number. 2 %m Month as a decimal number [01,12]. 3 %d Day of the month as a decimal number [01,31]. 4 %H Hour (24-hour clock) as a decimal number [00,23]. 5 %M Minute as a decimal number [00,59]. 6 %S Second as a decimal number [00,61]. 7 striptime() --將時間字符串根據指定的格式化字符轉換成數組形式的時間 8 9 print(time.time()) ---返回當前時間戳 10 print(time.ctime()) ---返回當前時間 11 print(time.ctime(time.time()-86400)) --將時間戳轉換爲字符串 12 print(time.localtime(time.time()-86400)) --本地時間 13 print(time.mktime(time.localtime())) --與time.localtime()功能相反,將struct_time格式轉回成時間戳格式 14 print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime())) -- 將struct_time格式轉換指定d字符串格式 15 print(time.strptime("2016-01-28","%Y-%m-%d")) --將字符串格式轉換成struct_time格式 16 time.sleep(5) 休眠5s
經常使用的有:ide
import datetime print(datetime.datetime.now()) # 2016-05-17 15:46:40.784376 獲取當前的日期和時間 print(datetime.datetime.now()+datetime.timedelta(days=10)) # 2016-05-27 15:47:45.702528 將當前的時間向後推遲10天 print(datetime.date.today()) # 2016-05-17 獲取當前的日期 print(datetime.datetime.utcnow()) # 2016-05-17 08:23:41.150628 獲取格林威治時間 print(datetime.datetime.now().timetuple()) # time.struct_time(tm_year=2016 ... tm_hour=16,...)獲取當前一個包含當前時間的結構體 print(datetime.datetime.now().timestamp()) # 1463473711.057878 獲取當前的時間戳 print((datetime.datetime.fromtimestamp(1463473711.057878))) # 2016-05-17 16:28:31.057878 將時間戳轉換成日期和時間 print(datetime.datetime.strptime('2016-05-17 16:28:31','%Y-%m-%d %H:%M:%S')) #2016-05-17 16:28:31 str轉換爲datetime print(datetime.datetime.now().strftime('%D, %m %d %H:%M')) #05/23/16, 05 23 10:10 datetime轉換爲str
定義的類有:函數
1 datetime.date --表示日期的類。經常使用的屬性有year,month,day 2 datetime.time ---表示時間的類。牀用的屬性有hour,minute,second,microsecond 3 datetime.datetime --表示日期時間 4 datetime.timedalta --表示時間間隔,即兩個時間點之間的長度 5 date類 6 date類表示日期,構造函數以下: 7 datetime.date(year,month,day); 8 year(1-9999) 9 month(1-12) 10 day(1-31) 11 date.today()--返回一個表示當前本地日期的date對象 12 date.fromtimestamp(timestamp) -- 根據給定的時間戳,返回一個date對象 13 date.year() -- 取給定時間的年 14 date.month() -- 取時間對象的月 15 date.day() -- 取給定時間的日 16 date.replace() -- 生成一個新的日期對象,用參數指定的年,月, 日代替原有對象中的屬性 17 date.timetuple() -- 返回日期對應的time.struct_time對象 18 date.weekday() -- 返回week,Monday==0...Sunday == 6 19 date.isoweekday() -- 返回weekday,Monday == 1...Sunday == 7 20 date.ctime() -- 返回給定時間的字符串格式
print(datetime.date.today().year) -- 取時間對象的年 print(datetime.date.today().month) --取時間對象的月 print(datetime.date.today().day) --取時間對象的日 print(datetime.date.today().replace(2010,6,12)) --生成一個新的日期對象,用參數指定的年,月,日代替原有對象中的屬性 print(datetime.date.today().timetuple()) 返回給定時間的時間元組/對象 print(datetime.date.today().weekday()) -- 返回weekday,從0開始 print(datetime.date.today().ctime) --返回給定時間的字符串格格式 .tiem類 time類表示時間,由時,分,秒以及微秒組成 time.min() --最小表示時間 time.max() --最大表示時間 time.resolution() -- 微秒 案例: 最大時間 print(datetime.time.max) 最小時間 print(datetime.time.min) 時間最小單位,微秒 print(datetime.time.resolution)
1 ·datetime類 2 datetime是date與time的結合體,包括date與time的全部信息 3 datetime.max() --最大值 4 datetime.min() --最小值 5 datetime.resolution --datetime最小單位 6 datetime.today() -- 返回一個表示當前本地時間 7 datetime.fromtimestamp() --根據給定的時間戳,返回一個datetime對象 8 datetime.year() --取年 9 datetime.month() --取月 10 datetime.day() -- 取日期 11 datetim.replace() - 替換時間 12 datetime.strptime() --將字符串轉換成日期格式 13 datetime.time() -- 取給定日期時間的時間
1 案例: 2 3 4 print(datetime.datetime.max) #datetime最大值 5 6 print(datetime.datetime.min) #datetime最小值 7 8 print(datetime.datetime.resolution) #datetime最小單位 9 10 print(datetime.datetime.today()) #返回一個表示當前本地時間 11 12 print(datetime.datetime.fromtimestamp(time.time()))#根據給定的時間戮,返回一個datetime對象 13 14 print(datetime.datetime.now().year) #取時間對象的年 15 16 print(datetime.datetime.now().month) #取時間對象的月 17 18 print(datetime.datetime.now().day) #取時間對象的日 19 20 print(datetime.datetime.now().replace(2010,6,12))#生成一個新的日期對象,用參數指定的年,月,日代替原有對象中的屬性 21 22 print(datetime.datetime.now().timetuple()) #返回給定時間的時間元組/對象 23 24 print(datetime.datetime.now().weekday()) #返回weekday,從0開始 25 26 print(datetime.datetime.now().isoweekday()) #返回weekday,從1開始 27 28 print(datetime.datetime.now().ctime()) #返回給定時間的字符串格式 29 30 print(datetime.datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M"))#將字符串轉換成日期格式 31 32 print(datetime.datetime.now().time()) #取給定日期時間的時間 33 34 print(datetime.datetime.now() + datetime.timedelta(days=-5))#獲取5日前時間