pythontimedelta
❶ 如何使用python中timedelta這個類實現月份的累加
datetime的timedelta沒有關於月份的參數。可以使版用權time。
import time
now = time.localtime()
print now
last_month = now[1] - 1 or 12
next_month = (now[1] + 3) % 12 or 12
print last_month
print next_month
❷ Python中處理時間的幾種方法小結
python中的時間模塊主要有time, datetime。
I, time模塊
time模塊中包含了四種時間格式:
float格式,即給定時間相對於epoch增加的秒數
tuple格式,一個九元組 (tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst)
string格式,'Mon Feb 6 15:00:06 2012'
format格式,以指定的格式生成的時間
針對這幾種時間格式,time模塊提供了函數在格式之間相互轉換。
asctime(tuple) ->string
ctime(float) ->string
gmtime(float) ->tuple
localtime(float) ->tuple
mktime(tuple) ->float
strftime(format, tuple) ->format string
strptime(formatstring, format) ->tuple
time() -> float
上述函數中,除了time()函數直接返回當前時間相對於epoch的秒數外,其他函數都要求有時間的輸入,如果沒有輸入,則默認使用當前時間。
另外,strftime和strptime中的format使用下面的格式:
%a 英文星期簡寫
%A 英文星期的完全
%b 英文月份的簡寫
%B 英文月份的完全
%c 顯示本地日期時間
%d 日期,取1-31
%H 小時, 0-23
%I 小時, 0-12
%m 月, 01 -12
%M 分鍾,1-59
%j 年中當天的天數
%w 顯示今天是星期幾
%W 第幾周
%x 當天日期
%X 本地的當天時間
%y 年份 00-99間
%Y 年份的完整拼寫
%S 秒(00-59)
除了上述的時間轉換函數之外,模塊還提供了下面的函數:
clock() 返回進程的創建時間,以秒計數的float
sleep(float) sleep一段時間,以秒計數
tzset() 更改時區
II, datetime
datetime模塊定義了下面這幾個類:
datetime.date:表示日期的類。常用的屬性有year, month, day;datetime.time:表示時間的類。常用的屬性有hour, minute, second, microsecond;datetime.datetime:表示日期時間。datetime.timedelta:表示時間間隔,即兩個時間點之間的長度。datetime.tzinfo:與時區有關的相關信息。(這里不詳細充分討論該類,感興趣的童鞋可以參考python手冊)
注 :上面這些類型的對象都是不可變(immutable)的。
下面詳細介紹這些類的使用方式。
date類
date類表示一個日期。日期由年、月、日組成(地球人都知道~~)。date類的構造函數如下:
class datetime.date(year, month, day):參數的意義就不多作解釋了,只是有幾點要注意一下:
year的范圍是[MINYEAR, MAXYEAR],即[1, 9999];month的范圍是[1, 12]。(月份是從1開始的,不是從0開始的~_~);day的最大值根據給定的year, month參數來決定。例如閏年2月份有29天;
date類定義了一些常用的類方法與類屬性,方便我們操作:
date.max、date.min:date對象所能表示的最大、最小日期;date.resolution:date對象表示日期的最小單位。這里是天。date.today():返回一個表示當前本地日期的date對象;date.fromtimestamp(timestamp):根據給定的時間戮,返回一個date對象;datetime.fromordinal(ordinal):將Gregorian日歷時間轉換為date對象;(Gregorian Calendar :一種日歷表示方法,類似於我國的農歷,西方國家使用比較多,此處不詳細展開討論。)
❸ 怎麼將python時間段(Timedelta)轉化為int或float數值形式! 急。
td_series.astype('timedelta64[D]').astype(int) 提取天數
td_series.astype('timedelta64[h]').astype(int) 提取小時
要提取月份的值再除30天,自行把握
❹ 怎麼將python時間段(Timedelta)轉化為int或float數值形式
>>> import datetime>>> a=datetime.timedelta(days=225,hours=12) #你說的225天12小時>>> b=datetime.timedelta(days=83,hours=7) #你說的83天7小時>>> a-b #直接減去,得到datetime.timedelta(142, 18000) #表示142天18000秒>>> a/20 #a除以20,得到datetime.timedelta(11, 23760) #表示11天23760秒>>> c=a/20>>> print(repr(c.days)+"天"+repr(c.seconds/3600)+"小時")11天6.6小時
❺ 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中時間的減法問題
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中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這個類實現月份的累加
datetime的timedelta沒有關於月份的參數。可專以使用屬time。
import time
now = time.localtime()
print now
last_month = now[1] - 1 or 12
next_month = (now[1] + 3) % 12 or 12
print last_month
print next_month
❾ 如何使用python中timedelta這個類實現月份的累加
首先這個問題用timedelta沒有直接的實現方法,給你兩個造好的輪版子,你看哪個爽用權哪個
import datetime
z=datetime.datetime(2016,12,17)
#1.
import dateutil
z+dateutil.relativedelta.relativedelta(months=1)
#2.
import pandas as pd
z+pd.tseries.offsets.DateOffset(months=4,days=5)
❿ Python Attribute error: type object 'datetime.dateime' has no attribute 'timedelta'
把第二句from去掉,並在第一句後面加上,timedelta