Python獲取兩時段內日期 月份 小時的列表清單

2021-08-21 02:37:44 字數 4343 閱讀 6758

1、總體**指令碼

/users/nisj/pycharmprojects/bidataproc/love/datelist.py

# -*- coding=utf-8 -*-

import warnings

import datetime

warnings.filterwarnings("ignore")

def getnowday():

daynow = datetime.datetime.today().strftime('%y-%m-%d')

return daynow

def getyesterday():

yesterday = (datetime.datetime.today() - datetime.timedelta(1)).strftime('%y-%m-%d')

return yesterday

def daterange(begindate, enddate):

dates =

dt = datetime.datetime.strptime(begindate, "%y-%m-%d")

date = begindate[:]

while date <= enddate:

dt = dt + datetime.timedelta(1)

date = dt.strftime("%y-%m-%d")

return dates

def monthrange(begindate, enddate):

monthset = set()

for date in daterange(begindate, enddate):

monthset.add(date[0:7])

monthlist =

for month in monthset:

return sorted(monthlist)

def datehourrange(begindatehour, enddatehour):

dhours =

dhour = datetime.datetime.strptime(begindatehour, "%y-%m-%d %h")

date = begindatehour[:]

while date <= enddatehour:

dhour = dhour + datetime.timedelta(hours=1)

date = dhour.strftime("%y-%m-%d %h")

return dhours

print getnowday()

print getyesterday()

print daterange(begindate='2018-06-05', enddate='2018-07-09')

print monthrange(begindate='2018-01-09', enddate='2019-09-01')

print datehourrange(begindatehour='2018-01-01 23', enddatehour='2018-01-03 00')

執行結果:

/usr/bin/python /users/nisj/pycharmprojects/bidataproc/love/datelist.py

2018-06-28

2018-06-27

['2018-06-05', '2018-06-06', '2018-06-07', '2018-06-08', '2018-06-09', '2018-06-10', '2018-06-11', '2018-06-12', '2018-06-13', '2018-06-14', '2018-06-15', '2018-06-16', '2018-06-17', '2018-06-18', '2018-06-19', '2018-06-20', '2018-06-21', '2018-06-22', '2018-06-23', '2018-06-24', '2018-06-25', '2018-06-26', '2018-06-27', '2018-06-28', '2018-06-29', '2018-06-30', '2018-07-01', '2018-07-02', '2018-07-03', '2018-07-04', '2018-07-05', '2018-07-06', '2018-07-07', '2018-07-08', '2018-07-09']

['2018-01', '2018-02', '2018-03', '2018-04', '2018-05', '2018-06', '2018-07', '2018-08', '2018-09', '2018-10', '2018-11', '2018-12', '2019-01', '2019-02', '2019-03', '2019-04', '2019-05', '2019-06', '2019-07', '2019-08', '2019-09']

['2018-01-01 23', '2018-01-02 00', '2018-01-02 01', '2018-01-02 02', '2018-01-02 03', '2018-01-02 04', '2018-01-02 05', '2018-01-02 06', '2018-01-02 07', '2018-01-02 08', '2018-01-02 09', '2018-01-02 10', '2018-01-02 11', '2018-01-02 12', '2018-01-02 13', '2018-01-02 14', '2018-01-02 15', '2018-01-02 16', '2018-01-02 17', '2018-01-02 18', '2018-01-02 19', '2018-01-02 20', '2018-01-02 21', '2018-01-02 22', '2018-01-02 23', '2018-01-03 00']

process finished with exit code 0

2、獲取日期清單的**

def daterange(begindate, enddate):

dates =

dt = datetime.datetime.strptime(begindate, "%y-%m-%d")

date = begindate[:]

while date <= enddate:

dt = dt + datetime.timedelta(1)

date = dt.strftime("%y-%m-%d")

return dates

3、獲取月份清單的**

借助於日期清單函式,然後對月份去重和排序。本想借datetime.timedelta(months=1),但不支援month,僅支援【datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)】;其中引數都是可選,預設值為0。

def monthrange(begindate, enddate):

monthset = set()

for date in daterange(begindate, enddate):

monthset.add(date[0:7])

monthlist =

for month in monthset:

return sorted(monthlist)

4、獲取日期小時清單**

借助了datetime.timedelta(hours=1),比月份的方便一些。

def datehourrange(begindatehour, enddatehour):

dhours =

dhour = datetime.datetime.strptime(begindatehour, "%y-%m-%d %h")

date = begindatehour[:]

while date <= enddatehour:

dhour = dhour + datetime.timedelta(hours=1)

date = dhour.strftime("%y-%m-%d %h")

return dhours

5、其他

獲取分鐘及秒的清單可以參照4,另外兩個是取當前日期及昨天日期函式。

注意月份清單的引數是兩個日期值。

python 獲取日期 python 獲取日期

python 獲取日期我們需要用到time模組,比如time.strftime方法 time.strftime y m d time.localtime time.time 最後用time.strftime 方法,把剛才的一大串資訊格式化成我們想要的東西,現在的結果是 2013 03 31 time...

PHP 獲取兩個日期之間的月 天

獲取月 start year 2020 開始年 start month 01 開始月 end year 2021 結束年 end month 09 結束月 date arr 儲存結果的陣列 if start year end year else else if year i end year els...

python獲取日期

我們需要用到time模組,比如time.strftime方法 time.strftime y m d time.localtime time.time 最後用time.strftime 方法,把剛才的一大串資訊格式化成我們想要的東西,現在的結果是 2013 03 31 time.strftime裡面...