常常得到了一個用戶提交的當前日期,咱們須要以這個日期爲依據返回它的前一天、後一天的日期或者轉換操做等。用Python能夠很是簡單的解決這些關於日期計算的問題。python
無論什麼時候何地,只要咱們編程時遇到了跟時間有關的問題,都要想到 datetime 和 time 標準庫模塊,今天咱們就用它內部的方法,詳解python操做日期和時間的方法。編程
1.將字符串的時間轉換爲時間戳數組
方法: a = "2013-10-10 23:40:00" #將其轉換爲時間數組 import time timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S") #轉換爲時間戳: timeStamp = int(time.mktime(timeArray)) timeStamp == 1381419600
2.格式更改spa
如a = "2013-10-10 23:40:00",想改成 a = "2013/10/10 23:40:00"
方法:先轉換爲時間數組,而後轉換爲其餘格式code
timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S") otherStyleTime = time.strftime("%Y/%m/%d %H:%M:%S", timeArray)
3.時間戳轉換爲指定格式日期
方法一:利用localtime()轉換爲時間數組,而後格式化爲須要的格式,如:orm
timeStamp = 1381419600 timeArray = time.localtime(timeStamp) otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray) otherStyletime == "2013-10-10 23:40:00"
方法二:
three
import datetime timeStamp = 1381419600 dateArray = datetime.datetime.utcfromtimestamp(timeStamp) otherStyleTime = dateArray.strftime("%Y-%m-%d %H:%M:%S") otherStyletime == "2013-10-10 23:40:00"
4.獲取當前時間並轉換爲指定日期格式
方法一:字符串
import time #得到當前時間時間戳 now = int(time.time()) ->這是時間戳 #轉換爲其餘日期格式,如:"%Y-%m-%d %H:%M:%S" timeArray = time.localtime(timeStamp) otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
方法二:form
import datetime #得到當前時間 now = datetime.datetime.now() ->這是時間數組格式 #轉換爲指定的格式: otherStyleTime = now.strftime("%Y-%m-%d %H:%M:%S")
5.得到三天前的時間的方法class
import time import datetime #先得到時間數組格式的日期 threeDayAgo = (datetime.datetime.now() - datetime.timedelta(days = 3)) #轉換爲時間戳: timeStamp = int(time.mktime(threeDayAgo.timetuple())) #轉換爲其餘字符串格式: otherStyleTime = threeDayAgo.strftime("%Y-%m-%d %H:%M:%S") 注:timedelta()的參數有:days,hours,seconds,microseconds
6.給定時間戳,計算該時間的幾天前時間
timeStamp = 1381419600 #先轉換爲datetime import datetime import time dateArray = datetime.datetime.utcfromtimestamp(timeStamp) threeDayAgo = dateArray - datetime.timedelta(days = 3) #參考5,能夠轉換爲其餘的任意格式了
七、用Python計算昨天和明天的日期
>>> import datetime #導入日期時間模塊 >>> today = datetime.date.today() #得到今天的日期 >>> print today #輸出今天日期 2015-09-05 >>> yesterday = today - datetime.timedelta(days=1) #用今天日期減掉時間差,參數爲1天,得到昨天的日期 >>> print yesterday 2015-09-06 >>> tomorrow = today + datetime.timedelta(days=1) #用今天日期加上時間差,參數爲1天,得到明天的日期 >>> print tomorrow 2015-09-07 >>> >>> print "昨天:%s, 今天:%s, 明天:%s" % (yesterday, today, tomorrow) #字符串拼接在一塊兒輸出,這3天的日期
昨天:2015-09-05, 今天:2015-09-06, 明天:2015-09-07
八、python裏使用time模塊來獲取當前的時間
#!/usr/bin/python import time print (time.strftime("%H:%M:%S")) ## 12 hour format ## print (time.strftime("%I:%M:%S")) #:輸出 #18:11:30 #6:11:30
九、打印出當前的日期的python程序
!/usr/bin/python import time ## dd/mm/yyyy格式 print (time.strftime("%d/%m/%Y")) #輸出: 11/03/2014
十、使用datetime模塊來獲取當前的日期和時間
#!/usr/bin/python import datetime i = datetime.datetime.now() print ("當前的日期和時間是 %s" % i) print ("ISO格式的日期和時間是 %s" % i.isoformat() ) print ("當前的年份是 %s" %i.year) print ("當前的月份是 %s" %i.month) print ("當前的日期是 %s" %i.day) print ("dd/mm/yyyy 格式是 %s/%s/%s" % (i.day, i.month, i.year) ) print ("當前小時是 %s" %i.hour) print ("當前分鐘是 %s" %i.minute) print ("當前秒是 %s" %i.second)
附:日期和時間的格式化參數
%a 星期幾的簡寫 %A 星期幾的全稱 %b 月分的簡寫 %B 月份的全稱 %c 標準的日期的時間串 %C 年份的後兩位數字 %d 十進制表示的每個月的第幾天 %D 月/天/年 %e 在兩字符域中,十進制表示的每個月的第幾天 %F 年-月-日 %g 年份的後兩位數字,使用基於周的年 %G 年分,使用基於周的年 %h 簡寫的月份名 %H 24小時制的小時 %I 12小時制的小時 %j 十進制表示的每一年的第幾天 %m 十進制表示的月份 %M 十時製表示的分鐘數 %n 新行符 %p 本地的AM或PM的等價顯示 %r 12小時的時間 %R 顯示小時和分鐘:hh:mm %S 十進制的秒數 %t 水平製表符 %T 顯示時分秒:hh:mm:ss %u 每週的第幾天,星期一爲第一天 (值從0到6,星期一爲0) %U 第年的第幾周,把星期日作爲第一天(值從0到53) %V 每一年的第幾周,使用基於周的年 %w 十進制表示的星期幾(值從0到6,星期天爲0) %W 每一年的第幾周,把星期一作爲第一天(值從0到53) %x 標準的日期串 %X 標準的時間串 %y 不帶世紀的十進制年份(值從0到99) %Y 帶世紀部分的十制年份 %z,%Z 時區名稱,若是不能獲得時區名稱則返回空字符。 %% 百分號