❶ python中如何用time計算時間差
1
首先我們需要import
datetime,導入日期處理庫
2
然後把日期轉化成datetime標准格式,如下圖所示使用datetime.datetime.strptime方法將字元串格式的時間轉化為標准格式
3
其中"%Y/%m/%d
%H:%M:%S"為time字元串的時間格式
Y為年,m為月,d為天,H為小時,M為分鍾,S為秒,執行轉化結果如下
4
下面如果我們要加的時間是天則如下圖,當前時間加上datetime.timedelta(days=1)。datetime的timedelta方法實現
5
同理如果要加的時間是小時則如下,當前時間加上datetime.timedelta(hour
s=1)
6
同理如果要加的時間是分鍾則如下,當前時間加上datetime.timedelta(minutes=1)
7
如果加的時間是s的話,如下當前時間加上datetime.timedelta(seconds=1)
8
如果是加年的話需要把年數轉化成day再做計算
❷ python中datetime怎麼用
'''''
日期相關的操作
'''
from
datetime
import
datetime
from
datetime
import
timedelta
DATE_FMT
=
'%Y-%m-%d'
DATETIME_FMT
=
'%Y-%m-%d
%H:%M:%S'
DATE_US_FMT
=
'%d/%m/%Y'
'''''
格式化常用的幾個參數
Y
:
1999
y
:99
m
:
mouth
02
12
M
:
minute
00-59
S
:
second
d
:
day
H
:
hour
'''
def
dateToStr(date):
'''''把datetime類型的時間格式化自己想要的格式'''
return
datetime.strftime(date,
DATETIME_FMT)
def
strToDate(strdate):
'''''把str變成日期用來做一些操作'''
return
datetime.strptime(strdate,
DATETIME_FMT)
def
timeElement():
'''''獲取一個時間對象的各個元素'''
now
=
datetime.today()
print
'year:
%s
month:
%s
day:
%s'
%(now.year,
now.month,
now.day)
print
'hour:
%s
minute:
%s
second:
%s'
%(now.hour,
now.minute,
now.second)
print
'weekday:
%s
'
%(now.weekday()+1)
#一周是從0開始的
def
timeAdd():
'''''
時間的加減,前一天後一天等操作
datetime.timedelta([days[,
seconds[,
microseconds[,
milliseconds[,
minutes[,
hours[,
weeks]]]]]]])
參數可以是正數也可以是負數
得到的對象可以加也可以減
乘以數字和求絕對值
'''
atime
=
timedelta(days=-1)
now
=
datetime.strptime('2001-01-30
11:01:02',
DATETIME_FMT)
print
now
+
atime
print
now
-
abs(atime)
print
now
-
abs(atime)*31
import
calendar
def
lastFirday():
today
=
datetime.today()
targetDay
=
calendar.FRIDAY
thisDay
=
today.weekday()
de
=
(thisDay
-
targetDay)
%
7
res
=
today
-
timedelta(days=de)
print
res
def
test():
#print
dateToStr(datetime.today())
#print
strToDate('2013-01-31
12:00:01')
#timeElement()
#timeAdd()
#lastFirday()
if
__name__=='__main__':
test()
❸ Python 可能多的列出datetime,time模塊的用法
#!/usr/bin/python
import datetime
import time
help(datetime)
help(time)
❹ python中timedelta方法怎麼用
#! /usr/bin/python# coding=utf-8from datetime import datetime,timedelta"""timedelta代表兩個datetime之間的時間差"""now = datetime.now()
past = past = datetime(2010,11,12,13,14,15,16)
timespan = now - past#這會得到一個負數
past - now
attrs = [
("days","日"),( 'seconds',"秒"),( 'microseconds',"毫秒")#('min',"最小"),( 'max',"最大"),]for k,v in attrs: "timespan.%s = %s #%s" % (k,getattr(timespan, k),v)"""總共相差的秒數"""timespan.total_seconds()"""實例化一個timespan
請注意它的參數順序
timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])"""timespan = timedelta(days=1)
now - timespan #返回的是datetime型
now + timespan
timespan * 2 #還可以乘哦。代表二倍
timespan / 13#增加一個月from calendar import monthrange
now + timedelta(days=monthrange(start.year,start.month)[1])
❺ 如何使用python中timedelta這個類實現月份的累加
這個玩意不好整月份增加實在要整的也可以
1計算出這段指定時間的當天時間凌晨時間和疊加月後的凌晨時間
2求出相差的天數
3最後再加天數再指定的時間內疊加即可
不過網上的大神們有簡單的方法可以試試
#-*-coding:utf-8-*-
importdatetime
now=datetime.datetime.now()#當前日期
printnow
addmonths=3#增加的月份數往前推就是負數-3
printnow.replace(month=(now.month+addmonths-1)%12+1,year=now.yearifnow.month<10elsenow.year+1)
❻ python中如何把datetime.datetime轉換成datetime.time
用Python實現字元串和日期相互轉換的方法,具體如下:這里用的分別是time和datetime函數來處理 importtime,datetime //日期轉化為字元串 #datetostr //輸出時間 printtime.strftime("%Y-%m-%d%X",time.localtime()) #strtodate //字元串轉化為日期 t=time.strptime("2016-12-05","%Y-%m-%d") y,m,d=t[0:3] //輸出時間 printdatetime.datetime(y,m,d)
❼ 怎樣在python中表達其中一天的下一日
要先把str轉日期型,才能做日期計算
❽ python中時間的減法問題
python日期加減
Python 中日期類型是datetime.date
日期加減的結果,以及可以對日期相加減的類型是datetime.timedelta
timedelta = date1 - date2
date1 = date2 + timedelta
datetime.timedelta(days, seconds, microseconds)
d1 = datetime.date.today()
加一天:
d2 = d1 + datetime.timedelta(1)
減一天:
d2 = d1 + datetime.timedelta(-1)
python 如何計算時間差
Python Tip]如何計算時間差
Q:如何方便的計算兩個時間的差,如兩個時間相差幾天,幾小時等
A:使用datetime模塊可以很方便的解決這個問題,舉例如下:
>>> import datetime
>>> d1 = datetime.datetime(2005, 2, 16)
>>> d2 = datetime.datetime(2004, 12, 31)
>>> (d1 – d2).days
47
上例演示了計算兩個日期相差天數的計算。
import datetime
starttime = datetime.datetime.now()
#long running
endtime = datetime.datetime.now()
print (endtime – starttime).seconds
上例演示了計算運行時間的例子,以秒進行顯示。
>>> d1 = datetime.datetime.now()
>>> d3 = d1 + datetime.timedelta(hours=10)
>>> d3.ctime()
上例演示了計算當前時間向後10小時的時間。
其本上常用的類有:datetime和timedelta兩個。它們之間可以相互加減。每個類都有一些方法和屬性可以查看具體的值,如datetime可以查看:天數(day),小時數(hour),星期幾(weekday())等;timedelta可以查看:天數(days),秒數(seconds)等。
❾ python datetime處理時間
python時間處理方法datetime(),下面就舉幾個代碼案例進行說明,代碼如下:
#-*-coding:utf-8-*-
#運行環境:Python3.4
#datetime類
#datetime是date與time的結合體,包括date與time的所有信息。
#它的構造函數如下:
#datetime.datetime(year,month,day[,hour[,minute[,second[,microsecond[,tzinfo]]]]])
#各參數的含義與date、time的構造函數中的一樣,要注意參數值的范圍。
#1.datetime類定義的類屬性與方法:
#datetime.min、datetime.max:datetime所能表示的最小值與最大值;
#print:datetime.max:9999-12-3123:59:59.999999
#print:datetime.min:0001-01-0100:00:00
fromdatetimeimport*
importtime
print('datetime.max:'+str(datetime.max))
print('datetime.min:'+str(datetime.min))
#datetime.resolution:datetime最小單位;
#print:datetime.resolution:0:00:00.000001
print('datetime.resolution:'+str(datetime.resolution))
#datetime.today():返回一個表示當前本地時間的datetime對象;
#print:today():2012-09-1219:37:50.721000
print('today():'+str(datetime.today()))
#datetime.now([tz]):返回一個表示當前本地時間的datetime對象,如果提供了參數tz,則獲取tz參數所指時區的本地時間;
#print:now():2012-09-1219:37:50.738000
print('now():'+str(datetime.now()))
#datetime.utcnow():返回一個當前utc時間的datetime對象;
#print:2012-09-1211:37:50.739000
print('utcnow():'+str(datetime.utcnow()))
#datetime.fromtimestamp(timestamp[,tz]):根據時間戮創建一個datetime對象,參數tz指定時區信息;
#print:fromtimestamp(tmstmp):2012-09-1219:37:50.741000
print('fromtimestamp(tmstmp):'+str(datetime.fromtimestamp(time.time())))
#datetime.utcfromtimestamp(timestamp):根據時間戮創建一個datetime對象;
#print:utcfromtimestamp(tmstmp):2012-09-1211:37:50.742000
print('utcfromtimestamp(tmstmp):'+str(datetime.utcfromtimestamp(time.time())))
#datetime.combine(date,time):根據date和time,創建一個datetime對象;
#print:datetime.combine(date,time):2012-09-1219:46:05
d=date(2012,9,12)
fromdatetimeimport*
t=time(19,46,5)
print('datetime.combine(date,time):'+str(datetime.combine(d,t)))
#datetime.strptime(date_string,format):將格式字元串轉換為datetime對象;
#print:2007-03-0421:08:12
print(datetime.strptime("2007-03-0421:08:12","%Y-%m-%d%H:%M:%S"))
#2.datetime類提供的實例方法與屬性
dt=datetime.strptime("2012-09-1221:08:12","%Y-%m-%d%H:%M:%S")
#print:2012912218120None
print(dt.year)
print(dt.month)
print(dt.day)
print(dt.hour)
print(dt.minute)
print(dt.second)
print(dt.microsecond)
print(dt.tzinfo)
print(dt.date())
print(dt.time())
print(dt.replace(year=2013))
print(dt.timetuple())
print(dt.utctimetuple())
print(dt.toordinal())
print(dt.weekday())
print(dt.isocalendar())
#printdt.isoformat([sep])
#datetime.ctime():返回一個日期時間的C格式字元串,等效於time.ctime(time.mktime(dt.timetuple()));
#3.格式字元串
#datetime.strftime(format)
#%a星期的簡寫。如星期三為Web
#%A星期的全寫。如星期三為Wednesday
#%b月份的簡寫。如4月份為Apr
#%B月份的全寫。如4月份為April
#%c:日期時間的字元串表示。(如:04/07/1010: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:時區名稱(如果是本地時間,返回空字元串)
#%%:%%=>%
dt=datetime.now()
#print:(%Y-%m-%d%H:%M:%S%f):2012-09-1223:04:27145000
print('(%Y-%m-%d%H:%M:%S%f):'+str(dt.strftime('%Y-%m-%d%H:%M:%S%f')))
#print:(%Y-%m-%d%H:%M:%S%p):12-09-1211:04:27PM
print('(%Y-%m-%d%H:%M:%S%p):'+str(dt.strftime('%y-%m-%d%I:%M:%S%p')))
#print:%a:Wed
print('%%a:%s'%dt.strftime('%a'))
#print:%A:Wednesday
print('%%A:%s'%dt.strftime('%A'))
#print:%b:Sep
print('%%b:%s'%dt.strftime('%b'))
#print:%B:September
print('%%B:%s'%dt.strftime('%B'))
#print:日期時間%c:09/12/1223:04:27
print('日期時間%%c:%s'%dt.strftime('%c'))
#print:日期%x:09/12/12
print('日期%%x:%s'%dt.strftime('%x'))
#print:時間%X:23:04:27
print('時間%%X:%s'%dt.strftime('%X'))
#print:今天是這周的第3天
print('今天是這周的第%s天'%dt.strftime('%w'))
#print:今天是今年的第256天
print('今天是今年的第%s天'%dt.strftime('%j'))
#print:今周是今年的第37周
print('今周是今年的第%s周'%dt.strftime('%U'))
上面代碼案例運行結果如下:
atetime.max:9999-12-3123:59:59.999999
datetime.min:0001-01-0100:00:00
datetime.resolution:0:00:00.000001
today():2014-05-0415:58:18.141186
now():2014-05-0415:58:18.193146
utcnow():2014-05-0407:58:18.243958
fromtimestamp(tmstmp):2014-05-0415:58:18.291558
utcfromtimestamp(tmstmp):2014-05-0407:58:18.342550
datetime.combine(date,time):2012-09-1219:46:05
2007-03-0421:08:12
2012
9
12
21
8
12
0
None
2012-09-12
21:08:12
2013-09-1221:08:12
time.struct_time(tm_year=2012,tm_mon=9,tm_mday=12,tm_hour=21,tm_min=8,tm_sec=12,tm_wday=2,tm_yday=256,tm_isdst=-1)
time.struct_time(tm_year=2012,tm_mon=9,tm_mday=12,tm_hour=21,tm_min=8,tm_sec=12,tm_wday=2,tm_yday=256,tm_isdst=0)
734758
2
(2012,37,3)
(%Y-%m-%d%H:%M:%S%f):2014-05-0415:58:19326295
(%Y-%m-%d%H:%M:%S%p):14-05-0403:58:19PM
%a:Sun
%A:Sunday
%b:May
%B:May
日期時間%c:SunMay415:58:192014
日期%x:05/04/14
時間%X:15:58:19
今天是這周的第0天
今天是今年的第124天
今周是今年的第18周