1. 程式人生 > >day16——import、datetime獲得時間、時間格式的相互轉換

day16——import、datetime獲得時間、時間格式的相互轉換

rda 北京 type __init__ 轉換成 我們 不同的 包含 介紹

在日常的開發工作中,我們要寫很多的Python代碼,如果都寫在一個文件中,會導致代碼特別難維護,為了拓展代碼的可維護性,我們把函數寫在不同的文件裏,這樣每個文件包含的文件就比較少,邏輯更加清楚。在Python中,我們創建的文件基本都是以.py結尾,那一個.py的文件就稱之為模塊。 為了方便管理模塊,Python中又引入了包(Packge)這個概念,每個包下面都有一個__init__.py文件,這個文件是必須存在的,否則,Python就把這個目錄當成普通目錄,而不是一個包。__init__.py可以是空文件,也可以有Python代碼。因為__init__.py本身就是一個模塊,舉個例子:test目錄下面有__init_py,app.py,bbb.py三個文件, 技術分享
技術分享 a)import導入 有時候一個文件或者一個包中已經出現了一個函數,我們在另一個Python代碼中需要引入該文件或者該文件的某個函數,那怎麽解決呢?Python給我們提供一個關鍵字import,下面我們來了解一下它的用法: 1.如果是本地導入文件,直接使用:import filename 2.如果導入的是一個包,該包下面必須是有__init__.py文件才可以導入,否則報錯,只有有了__init__.py文件,Python解析器才會把這個目錄當成包。 常用的導入模塊格式: form xxx import xxx import xxx 在導入的時候,.py的後綴直接省略,如果是多級的包,或者想導入包裏面的函數等,可以使用from進行導入,舉個例子: from aaa import bbb import os 解釋:第一個例子是導入aaa包下面的bbb模塊或者導入aaa文件下面的bbb類或者函數。 第二個import是直接導入系統模塊os模塊。 #import 一般我們用作導入模塊來用,常用的快捷鍵是 alt + Enter就可以直接導入模塊 #from ... import ... 這個是從什麽模塊中導入什麽,最終你可以導入的是一個函數,也可以是一個類,也可以是一個模塊 #總結:就是一層一層的調用就可以了。 #註意:1.import後面導入的是什麽,在調用的時候,就必須寫什麽,除非你用from進行導入 2.導入的時候不寫後綴名字 datetime獲得時間 The distinction between naive and aware doesn‘t apply to timedelta objects Subclass relationships: object timedelta tzinfo time date datetime time 在Python文檔裏,time是歸類在Generic Operating System Services中,換句話說,它提供的功能是更加接近於操作系統層面的。通讀文檔可知,time模塊是圍繞著Unix Timestamp進行的。time模塊基於不用於取時間,取時間推薦使用datetime模塊 Python開發過程中,我們經常會用到獲取當前時間,根據當前時間生成一個和當天時間相關的文件,這樣我們在後期看查找文件的時候就方便了很多,那Python又如何來獲取當前時間呢?
1
from datetime import datetime 2 now_time = datetime.now() 3 a = now_time.strftime(%Y-%m-%d) 4 print(now_time) 5 print(a) 6 print(type(now_time))

打印結果為: 技術分享 技術分享 解釋: 1.先導入datetime類 2.通過datetime的now方法就獲得當前所需要的時間 3.datetime還是有好多方法的,可以獲取year,month等,請通過dir()訪求查看 4.此時我們獲得的now_time還是一個datetime類,所以我們需要用strftime方法轉換成字符串,strftime的參數就是最終需要字符串的形式 5.strftime需要便是時間的參數有很多,下面我們介紹一下最長用的一些參數: 格式參數: %Y :帶世紀部分的十制年份 %m :十進制表示的月份 %d :十進制表示的每月的第幾天 %H :24小時制的小時 %M :十進制表示的分鐘數 %s :十進制的秒數 %c :標準時間。如:04/25/17 14:35:14 類似於這種形式 這幾個參數就是最常用到的我們用的時間 此時還有一個問題,就是在我們開發過程中,經常要取昨天的時間,或者明天的時間,那又應該怎麽辦呢? 例子:
1
from datetime import datetime,timedelta 2 now_time = datetime.now() 3 a = now_time.strftime(%c) 4 print(now_time) 5 print(a) 6 b = now_time + timedelta(days =-1) 7 print(b)

打印結果為: 技術分享 技術分享 解釋: Timedelta可以接收days和seconds兩個參數,正數代表幾天之前的,負數代表幾天之前的,所以b代表的是一天之前的時候。 #time獨有的用法:
 1 import time
 2  
 3 for i in xrange(1,4):
 4     print (i)
 5     time.sleep(0.1)
 6  
 7 #datetime
 8  
 9 from datetime import datetime, timedelta
10  
11 now_time = datetime.now()
12 print(now_time)
13 new_time = now_time.strftime(%Y-%m-%d %H:%M:%S)
14 a = now_time.strftime(%c)
15 print(new_time)
16 print(a)

#now 獲得當前的時候,strftime用來表示顯示時間的格式 #如果我們要取昨天或者明天的日期,
1 print(#*30)
2 now_time = datetime.now()
3 yesterday = now_time + timedelta(days =- 1)
4 tomorrow = now_time + timedelta(days =- 1)
5 tomorrow_1 = now_time + timedelta(days=-1)
6 tomorrow = tomorrow_1.strftime(%Y-%m-%d)
7 print(yesterday)
8 print(tomorrow)

返回結果為: 技術分享 技術分享

時間格式的相互轉換 時間的三種存在方式:時間對象、時間字符串,時間戳 (1)字符串轉datetime:
1 from datetime import datetime,timedelta
2 string = 2017-04-25 11:59:58
3 time1 = datetime.strptime(string,%Y-%m-%d %H:%M:%S)
4 print(time1)
5 print(type(time1))

打印結果為: 技術分享

技術分享 (2)datetime轉字符串
1 from datetime import datetime,timedelta
2 string = 2017-04-25 11:59:58
3 time1 = datetime.strptime(string,%Y-%m-%d %H:%M:%S)
4 print(time1)
5 print(type(time1))
6 time1_str = datetime.strftime(time1,%Y-%m-%d %H:%M:%S)
7 print(type(time1_str))
8 print(time1_str)

打印結果為: 技術分享 技術分享

(3)時間戳轉時間對象:
1 from datetime import datetime,timedelta
2 import time
3 time1 = time.time()
4 print(time1)
5 time1_str = datetime.fromtimestamp(time1)
6 print(time1_str)
7 print(type(time1_str))

打印結果為: 技術分享

技術分享 解釋: 1.datetime模塊是包裝了time模塊的,所以只需要了解datetime模塊就可以 2.time.time()是或者當前時間的時間戳,時間戳是指格林威時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現在的總秒數 3.datetime下面有個函數fromtimestamp(時間戳)會把時間戳自動轉換成datetime類型
 1 from datetime import datetime
 2 import time
 3 
 4 now_time = datetime.now()
 5 print(now_time)
 6 print(type(now_time))
 7 print(###################time to str###################)
 8 _time = now_time.strftime(%Y-%m-%d %H:%M:%S)
 9 _time = datetime.strftime(now_time,%Y-%m-%d %H:%M:%S)
10 print(_time)
11 print(type(_time))
12 print(###################str to time###################)
13 _d_time = datetime.strptime(_time,%Y-%m-%d %H:%M:%S)
14 print(_d_time)
15 print(type(_d_time))
16 
17 
18 
19 print(###################時間戳stamp###################)
20 #時間戳轉換成時間對象
21 _a = time.time()
22 print(_a)
23 _n_time = datetime.fromtimestamp(_a)
24 print(_n_time)
25 print(type(_n_time))

打印結果為: 技術分享 技術分享

day16——import、datetime獲得時間、時間格式的相互轉換