python的datetime.timedelta,Python的

本文目錄一覽:

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])

實例1:

”’時間d距離now()的長度,比如:1分鐘前,1小時前,1月前,1年前”’

Python代碼  

# -*- encoding=UTF-8 -*-

import datetime

def timebefore(d):

chunks = (

(60 * 60 * 24 * 365, u’年’),

(60 * 60 * 24 * 30, u’月’),

(60 * 60 * 24 * 7, u’周’),

(60 * 60 * 24, u’天’),

(60 * 60, u’小時’),

(60, u’分鐘’),

)

#如果不是datetime類型轉換後與datetime比較

if not isinstance(d, datetime.datetime):

d = datetime.datetime(d.year,d.month,d.day)

now = datetime.datetime.now()

delta = now – d

#忽略毫秒

before = delta.days * 24 * 60 * 60 + delta.seconds  #python2.7直接調用 delta.total_seconds()

#剛剛過去的1分鐘

if before = 60:

return u’剛剛’

for seconds,unit in chunks:

count = before // seconds

if count != 0:

break

return unicode(count)+unit+u”前”

實例2:

『』『當前的時間上加一天或一年減一天等操作』『』

Python代碼1  

#!/usr/bin/env python

# -*- coding:utf-8 -*-

from datetime import datetime,timedelta

now = datetime.now()

yestoday = now – timedelta(days=1)

tommorow = now + timedelta(days=1)

next_year = now + timedelta(days = 365)

Python代碼2  

#使用replace()代替日期加減 

from datetime import datetime

now1 = datetime.now()

now1     # datetime.datetime(2017, 2, 10, 22, 29, 48, 288500)

# 增加一天或減少一天  

now2 = now1.replace(day=9)

now2  # datetime.datetime(2017, 2, 9, 22, 29, 48, 288500)

# timestrap() 函數是把日期轉化為時間戳,時間戳就是秒數

time_span = now1.timestrap() – now2.timestrap()/(24*3600)  

time_span # 1      

日期常用問題

1: Datetime中offset-naive與offset-aware時間的計算

在使用Django時,默認是開啟對多時區的支持的,在獲取時間的時候會是如下形式:

datetime.datetime(2014, 4, 18, 15, 37, 7, tzinfo=UTC)

我們可以利用django.utils.timezone中提供的localtime方法來將該時間轉換為本地時間:

1234    dtdatetime.datetime(2014, 4, 18, 15, 37, 7, tzinfo=UTC) localtime(dt)datetime.datetime(2014, 4, 18, 23, 37, 7, tzinfo=LocalTimezone)   

有時候,我們需要將該時間與當前時間做比較,例如計算差值,你可能會想到直接這麼做:

123    import datetime now = datetime.datetime.now() now – dt   

不過這是不對的,並告知如下錯誤:

123   Traceback (most recent call last):  File “console”, line 1, in moduleTypeError: can’t subtract offset-naive and offset-aware datetimes   

問題就出在利用datetime.datetime.now()得到的當前時間是offset-naive的,而另外一個卻是offset-aware的,因此我們需要將這裡的dt轉成與now一樣的形式,可以這麼做:

12345    dt = dt.replace(tzinfo=None) dtdatetime.datetime(2014, 4, 18, 15, 37, 7) now – dtdatetime.timedelta(0, 34108, 443000)   

備註:1:timezone 獲取的日期增加和修改(比如加一天減一天)

from django.utiles import timezone

from datetime

t1 = timezone.now()

# torrow

t1+datetime.timedelta(days=1,hours=1)

2:python得到兩個時間段的每一天的列表

date_list = []

   begin_date = datetime.datetime.strptime(begin_date, “%Y-%m-%d”)

   end_date = datetime.datetime.strptime(end_date, “%Y-%m-%d”)    while begin_date = end_date:

       date_str = begin_date.strftime(“%m-%d”)

       date_list.append(date_str)

       begin_date += datetime.timedelta(days=1)    print date_list

# 方法2(安裝boto3 庫 pip install boto3):

from datetime import datetime

from dateutil.rrule import rrule, DAILY

a = datetime(2009, 5, 30)

b = datetime(2009, 6, 9)

for dt in rrule(DAILY, dtstart=a, until=b):

    print dt.strftime(“%Y-%m-%d”)

# 在原來日期上增加一年

from dateutil.relativedelta import relativedelta

from django.utils import timezone

t1 = timezone.now()

neww_year = t1 + relativedelta(years=1)

 

 

 

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.timedelta對象代表兩個時間之間的時間差,兩個date或datetime對象相減就可以返回一個timedelta對象。

利用以下數據進行說明:

如果我們發現時間相關內容的變數為int,float,str等類型,不方便後面的分析,就需要使用該函數轉化為常用的時間變數格式:pandas.to_datetime

轉換得到的時間單位如下:

如果時間序列格式不統一,pd.to_datetime()的處理方式:

當然,正確的轉換是這樣的:

第一步:to_datetime()

第二步:astype(datetime64[D]),astype(datetime64[M])

本例中:

order_dt_diff必須是Timedelta(‘0 days 00:00:00’)格式,可能是序列使用了diff()

或者pct_change()。

前者往往要通過’/np.timedelta’去掉單位days。後者其實沒有單位。

假如我們要統計某共享單車一天內不同時間點的用戶使用數據,例如

還有其他維度的提取,年、月、日、周,參見:

Datetime properties

注意 :.dt的對象必須為pandas.Series,而不可以是Series中的單個元素

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.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)

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/205856.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-07 17:47
下一篇 2024-12-07 17:47

相關推薦

  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29

發表回復

登錄後才能評論