不管何時何地,只要我們程式設計時遇到了跟時間有關的問題,都要想到 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.格式更改
如a = "2013-10-10 23:40:00",想改為 a = "2013/10/10 23:40:00"
方法:先轉換為時間陣列,然後轉換為其他格式
複製**
**如下:
timearray = time.strptime(a, "%y-%m-%d %h:%m:%s")
otherstyletime = time.strftime("%y/%m/%d %h:%m:%s", timearray)
3.時間戳轉換為指定格式日期
方法一:利用localtime()轉換為時間陣列,然後格式化為需要的格式,如:
timestamp = 1381419600
timearray = time.localtime(timestamp)
otherstyletime = time.strftime("%y-%m-%d %h:%m:%s", timearray)
otherstyletime == "2013-10-10 23:40:00"
方法二:
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)
方法二:
import datetime
#獲得當前時間
now = datetime.datetime.now() ->這是時間陣列格式
#轉換為指定的格式:
otherstyletime = now.strftime("%y-%m-%d %h:%m:%s")
5.獲得三天前的時間的方法
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,可以轉換為其他的任意格式了
7、用python計算昨天和明天的日期
>>> import datetime #匯入日期時間模組
>>> today = datetime.date.today() #獲得今天的日期
>>> print today #輸出今天日期
2014-01-04
>>> yesterday = today - datetime.timedelta(days=1) #用今天日期減掉時間差,引數為1天,獲得昨天的日期
>>> print yesterday
2014-01-03
>>> tomorrow = today + datetime.timedelta(days=1) #用今天日期加上時間差,引數為1天,獲得明天的日期
>>> print tomorrow
2014-01-05
>>>
>>> print "昨天:%s, 今天:%s, 明天:%s" % (yesterday, today, tomorrow) #字串拼接在一起輸出,這3天的日期
昨天:2014-01-03, 今天:2014-01-04, 明天:2014-01-05
8、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
9、列印出當前的日期的python程式
!/usr/bin/python
import time
## dd/mm/yyyy格式
print (time.strftime("%d/%m/%y"))
#輸出:
11/03/2014
10、使用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 時區名稱,如果不能得到時區名稱則返回空字元。
%% 百分號
python操作日期和時間的方法
遇到了跟時間有關的問題,都要想到 datetime 和 time 標準庫模組,今天我們就用它內部的方法,詳解python操作日期和時間的方法。1.將字串的時間轉換為時間戳 方法 a 2013 10 10 23 40 00 import time timearray time.strptime a,y...
python操作日期和時間的方法
不管何時何地,只要我們程式設計時遇到了跟時間有關的問題,都要想到 datetime 和 time 標準庫模組,今天我們就用它內部的方法,詳解python操作日期和時間的方法。1.將字串的時間轉換為時間戳 方法 a 2013 10 10 23 40 00 將其轉換為時間陣列 import time t...
Python中日期和時間的操作
python中,對日期和時間的操作,主要使用這3個內建模組 datetime time 和 calendar 獲取當前時間對應的數字 開發程式時,經常需要獲取兩個 位置在執行時的時間差,比如,我們想知道某個函式執行大概耗費了多少時間,就可以使用time.time 來做。import time bef...