如何获取两个任意时间段内的所有日期(及其他处理日期时间的方法总结)

(1)用一下方法获取两个任意时间段内的所有日期,代码如下:

#1、将字符串转换成datetime类型
def strtodatetime(datestr,format):
    return datetime.datetime.strptime(datestr,format)

#2、时间转换成字符串,格式为2008-08-02
def datetostr(date):
    return str(date)[0:10]

#3、两个日期相隔多少天,例:2008-10-03和2008-10-01是相隔两天
def datediff(beginDate,endDate):
    format="%Y/%m/%d";
    bd=strtodatetime(beginDate,format)
    ed=strtodatetime(endDate,format)
    oneday=datetime.timedelta(days=1)
    count=0
    while bd!=ed:
        ed=ed-oneday
        count+=1
    return count

#4、获取两个时间段的所有时间,返回list
def getDays(beginDate,endDate):
    format="%Y/%m/%d"
    ed=strtodatetime(endDate,format)
    oneday=datetime.timedelta(days=1)
    num=datediff(beginDate,endDate)+1
    li=[]
    for i in range(0,num):
        li.append(datetostr(ed))
        ed=ed-oneday
    return li

(2)设置起止日期(2000年1月1日截止今日的日期为例),代码如下:

def get_today():
    time.localtime(time.time())
    tdate = time.strftime(‘%Y-%m-%d‘,time.localtime(time.time()))
    return tdate

(3)在主函数中运行如下代码,即可获取2000年1月1日截止今日的所有日期。

def main():
print getDays(‘2000-01-01’,get_today())

if __name__ == ‘__main__‘:
    main()

此外,还有其他的一些日期时间处理小方法的总结,仅供参考。(from: http://www.linux-field.com/archives/360)

#8、获取当前年份 是一个字符串
def getYear():
    return str(datetime.date.today())[0:4]   

#9、获取当前月份 是一个字符串
def getMonth():
    return str(datetime.date.today())[5:7]  

#10、获取当前天 是一个字符串
def getDay():
    return str(datetime.date.today())[8:10]
def getNow():
    return datetime.datetime.now()  

print getToday()
print getYesterday()
print getDaysByNum(3)
print getDays(‘2008-10-01‘,‘2008-10-05‘)
print ‘2008-10-04 00:00:00‘[0:10]  

print str(getYear())+getMonth()+getDay()
print getNow()

#11、将字符串格式化成时间  

    import datetime
    >>> s="2006-1-2"
    print datetime.datetime.strptime(s,"%Y-%m-%d")
    2006-01-02 00:00:00
    import time
    >>> s="2006-1-2"
    >>> time.strptime(s,"%Y-%m-%d")
    >>> from time import *
    >>> strftime("%Y-%m-%d %H:%M:%S", localtime())
    ‘2011-10-12 03:00:58‘
#12、将格式字符串转换为时间戳
    >>> a = "Sat Mar 28 22:24:24 2009"
    >>> b = mktime(strptime(a,"%a %b %d %H:%M:%S %Y"))
    >>> print b
    1238250264.0
    >>>
#13、 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

#14、python取前几天的日期
    >>> from datetime import timedelta, date
    >>> print date.today() + timedelta(days = -2)   (是不是有点类似 date -d呢)
    2011-10-09
    >>> 

演示计算当前时间向后10小时的时间。
>>> d1 = datetime.datetime.now()
>>> d3 = d1 + datetime.timedelta(hours=10)
>>> d3.ctime()
其本上常用的类有:datetime和timedelta两个。它们之间可以相互加减。每个类都有一些方法和属性可以查看具体的值。

#15、根据一个起始天数,返回相对今天的日期列表

如 MyDate(0).getDaysByNum(1, 7)将得到从昨天开始一周内的日期列表。

class MyDate:

    def __init__ (self, i):
        self.i = i

    def getDaysByNum(self, st, en):
        today = datetime.date.today() + datetime.timedelta(-self.i)
        oneday = datetime.timedelta(days=1)
        global yesterday
        yesterday = today - oneday
        li = []
        for i in range(0, en):
            today = today - oneday
            li.append(str(today).replace("-",""))
        return li[st-1:en]   

#16、glob:可以使用简单的方法匹配某个目录下的所有子目录或文件,用法也很简单。
3.1 glob.glob(regression) 返回一个列表
3.2 glob.iglob(regression) 返回一个遍历器
时间: 2024-10-15 12:00:11

如何获取两个任意时间段内的所有日期(及其他处理日期时间的方法总结)的相关文章

[代码审计]phpshe开源商城后台两处任意文件删除至getshell

0x00 背景 这套系统审了很久了,前台审不出个所以然来.前台的限制做的很死. 入库的数据都是经过mysql_real_escape_string,htmlspecialchars的处理. 二次注入没找到,逻辑漏洞也没找到.抛开实际利用来说,简单讲讲两个任意文件删除漏洞,在拿到后台之后的getshell方法. 0x01 phpshe程序简介 phpshe是一个开源商城程序,程序在前台入库的地方都用了pe_dbhold函数(mysql_real_escape_string,htmlspecialc

Java获取两个时间段内的所有日期

import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; /** * 获取两个时间段内的所有日期,日期可跨年 */ public class GetBetweenDate { public static void main(String[] args) { List<String>

slq获取某一时间段内的全部数据

条件:根据数据库原有某一时间段数据,获取在筛选时间段内的全部数据信息: 通过分析在这筛选时间段的数据可大体分为以下3种情况: 数据库某字段的开始时间在筛选的开始时间与结束时间范围内 数据库某字段的结束时间在筛选的开始时间与结束时间范围内 数据库某字段的开始时间小于筛选的开始时间,结束时间大于筛选的结束时间 转化为sql语句为: ((startDate between '筛选开始时间' and '筛选结束时间') or (endDate between '筛选开始时间' and '筛选结束时间')

JS获取时间段内的工作时长

需求 1.给一个开始时间和结束时间: 2.计算在时间段内工作时间长度: 3.工作时间是9点-18点: 4.工作时长是8小时: 5.不记录周六和周日时间: 插件 使用了moment.js 代码 1 function GetWorkHours(beginDateTime, endDateTime) { 2 var _totalHour = 0; 3 //1.获取开始时间和结束时间之间的日 4 var _beginDate = moment(beginDateTime); 5 var _endDate

SQL 获取时间段内日期列表

declare @start date,@end date; set @start='2010-01-01'; set @end='2010-02-01'; --获取时间段内日期列表 select [day]=dateadd(day, number - 1, @start) from master.dbo.spt_values where type='P' and number <= datediff(day, @start,@end) + 1 and number>0

返回两个时间段内的季度

参考文章:https://www.cnblogs.com/caoyingjielxq/p/9426972.html public static Date parse(String string, String patern){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat(patern); try { Date parse = simpleDateFormat.parse(string); return parse; } cat

根据时间段获取时间段内所有时间点

Date.prototype.format=function (){var s='';s+=this.getFullYear()+'-';// 获取年份.s+=(this.getMonth()+1)+"-"; // 获取月份.s+= this.getDate(); // 获取日.return(s); // 返回日期.};function getAll(begin,end){var ab = begin.split("-");var ae = end.split(&q

iOS 断当前时间是否在一天的某个时间段内。

应用中设置一般会存在这样的设置,如夜间勿扰模式,从8:00-23:00,此时如何判断当前时间是否在该时间段内.难点主要在于如何用NSDate生成一个8:00的时间和23:00的时间,然后用当前的时间跟这俩时间作对比就好了. 下面提供两条思路: 法1.用NSDate生成当前时间,然后转为字符串,从字符串中取出当前的年.月.日,然后再拼上时.分.秒,然后再将拼接后的字符串转为NSDate,最后用当前的时间跟自己生成的俩NSDate的时间点比较.(该方法比较笨,也不难,但看起来有点太菜了,看上去不怎么

ios中利用NSDateComponents、NSDate、NSCalendar判断当前时间是否在一天的某个时间段内。

应用中设置一般会存在这样的设置,如夜间勿扰模式,从8:00-23:00,此时如何判断当前时间是否在该时间段内.难点主要在于如何用NSDate生成一个8:00的时间和23:00的时间,然后用当前的时间跟这俩时间作对比就好了. 下面提供两条思路: 法1.用NSDate生成当前时间,然后转为字符串,从字符串中取出当前的年.月.日,然后再拼上时.分.秒,然后再将拼接后的字符串转为NSDate,最后用当前的时间跟自己生成的俩NSDate的时间点比较.(该方法比较笨,也不难,但看起来有点太菜了,看上去不怎么