各种时间总和处理方式

python datetime获取几分钟、小时、天之前的时间

1

2

3

4

5

6

import datetime

print ((datetime.datetime.now()-datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M"))

print ((datetime.datetime.now()-datetime.timedelta(minutes=1)).strftime("%Y-%m-%d %H:%M"))

print ((datetime.datetime.now()-datetime.timedelta(seconds=1)).strftime("%Y-%m-%d %H:%M"))

 

固定时间处理

t = (datetime.datetime.now()).strftime("%Y-%m-%d %H") + ":00:00"
y = datetime.datetime.strptime(t, "%Y-%m-%d %H:%M:%S")
t =="2020-06-10 13:00:00" 
end_time = (y - datetime.timedelta(hours=1)).strftime("%Y-%m-%d %H") + ":00:00"
# t可以设置一个固定值 srt---> datetime---->计算提前小数数
print(t)
print(y)
print(type(y))
print(end_time)

时间处理 

datetime.datetime.now().month 获取当前月份 (year,month,day)

temp = response.doc("div.scd-title em").text()
                if temp.find("今天") !=-1:
                    temp = "%s%s%s%s%s" %(str(datetime.datetime.now().month),"-",str(datetime.datetime.now().day)," ",temp.replace("今天",""))
                else:
                    temp = temp.replace("月","-").replace("日","")
                pub_time ="%s%s%s" %(str(datetime.datetime.now().year),"-",temp)
            print("pub_time:"+pub_time)

时间 处理实例代码

 

import datetime,time
today = datetime.date.today()   # <class 'datetime.date'> 2019-10-10
str_today = today.strftime("%Y-%m-%d %H:%M:%S")      #<class 'str'> 2019-10-10 00:00:00

today_now = datetime.datetime.now()     #<class 'datetime.datetime'> 2019-10-10 18:10:19.423258
str_today_now = today_now.strftime("%Y-%m-%d %H:%M:%S")     # <class 'str'> 2019-10-10 18:10:19  datetime----->>  str
datetime_today_now = datetime.datetime.strptime(str_today_now, "%Y-%m-%d %H:%M:%S") # str----->>  datetime

yesterday = today - datetime.timedelta(days=1)
tomorrow = today + datetime.timedelta(days=1)
acquire = today + datetime.timedelta(days=2)
yesterday_start_time_stmp = int(time.mktime(time.strptime(str(yesterday), "%Y-%m-%d")))
yesterday_start_time_str = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(yesterday_start_time_stmp)) # <class 'str'>
yesterday_end_time_stmp = int(time.mktime(time.strptime(str(today), '%Y-%m-%d'))) - 1
tomorrow_start_time_stmp = int(time.mktime(time.strptime(str(tomorrow), '%Y-%m-%d')))
tomorrow_end_time = int(time.mktime(time.strptime(str(acquire), '%Y-%m-%d'))) - 1

# 获取 几分钟、小时、天之前的时间 days=1 minutes=1 seconds=1  <class 'datetime.datetime'>  2019-10-09 18:39:16.425765
one_day_before = datetime.datetime.now()-datetime.timedelta(days=1)  # strftime("%Y-%m-%d %H:%M:%S")

# 获取当前月份 year,month,day  <int>
now_month = datetime.datetime.now().month

# 字符串 和 时间戳转化
str_time = "2017-11-23 16:10:10"
str_to_stamp = int(time.mktime(time.strptime(str_time, "%Y-%m-%d %H:%M:%S"))) # <class 'int'> 1511424610
stamp_to_str = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(1511424610)) # <class 'str'> 2017-11-23 16:10:10
stamp_to_str = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

# datetime类型转时间戳
datetime_to_stamp = int(time.mktime(datetime.datetime.now().timetuple()))  #<class 'int'> 1570703665

# 获取毫秒时间戳
datetime_now = datetime.datetime.now()
date_stamp = str(int(time.mktime(datetime_now.timetuple())))
data_microsecond = str("%06d"%datetime_now.microsecond)[0:3]


#####################################################################################################
"""
def query_by_update_time2(self, st, en, status="1"):
    session = Session()
    # dt_s = datetime.now().date()
    reports = session.query(Notice).filter(
        Notice.update_time.between(st, en),
        Notice.status == status
    )
    return session, reports

session, reports = notice.query_by_update_time2("2019-10-10 00:00:00","2019-10-19 00:00:00")
"""

class Get_time(object):
    def __init__(self):
        self.today = datetime.date.today()
        # 上周开始结束时间 字符串 时间戳
        self.last_week_start = self.today - datetime.timedelta(days= self.today.weekday() + 7)
        self.last_week_end = self.today - datetime.timedelta(days=self.today.weekday() + 1)
        self.last_week_start_stmp = int(time.mktime(time.strptime(str(self.last_week_start), "%Y-%m-%d")))
        self.last_week_end_str = self.last_week_end.strftime("%Y-%m-%d") + " 23:59:59"
        self.last_week_end_stmp = int(time.mktime(time.strptime(self.last_week_end_str, "%Y-%m-%d %H:%M:%S")))

        #上周开始结束时间 字符串 时间戳
        self.this_week_start = self.today - datetime.timedelta(days=self.today.weekday())
        self.this_week_end = self.today + datetime.timedelta(days=6 - self.today.weekday())
        self.this_week_start_stmp = int(time.mktime(time.strptime(str(self.this_week_start), "%Y-%m-%d")))
        self.this_week_end_str = self.last_week_end.strftime("%Y-%m-%d") + " 23:59:59"
        self.this_week_end_stmp = int(time.mktime(time.strptime(self.this_week_end_str, "%Y-%m-%d %H:%M:%S")))

        # 前七天时间 不包含今天
        self.day_before_7 = self.today - datetime.timedelta(days=7)
        self.day_before_7_start_time = int(time.mktime(time.strptime(str(self.day_before_7), '%Y-%m-%d')))
        self.yesterday_end_time = int(time.mktime(time.strptime(str(self.today), '%Y-%m-%d'))) - 1


def get(num):
    # 以字符串分片截取来做
    num = str(num)
    # 求长度 便于扩展
    lens = len(num)
    print('千位数' + num[lens - 4:lens - 3])
    print('百位数' + num[lens - 3:lens - 2])
    print('十位数' + num[lens - 2:lens - 1])
    print('个位数' + num[lens - 1:lens])

    return


def Qianfenwei(num):
    ans=''
    if num<0:
        a=-num
    else:
        a=num
    while(a>=1000):
        b=a%1000
        if b==0:
            b='000'
        elif b>=1 and b<=9:
            b='00'+str(b)
        elif b>=10 and b<=99:
            b='0'+str(b)
        else:
            b=str(b)
        a=a//1000
        ans=','+b+ans
    ans=str(a)+ans
    if num<0:
        ans='-'+ans
    return ans
#测试


if __name__ == '__main__':
    pass
    num = "123452323"
    # lens = len(num)
    # print(lens-4)
    # print(lens - 3)
    # print(num[0:1])
    # print([lens - 4:lens - 3])
    print(Qianfenwei(12344565667))

上个月、周、季、年 时间

#本周第一天和最后一天
this_week_start = now - timedelta(days=now.weekday())
this_week_end = now + timedelta(days=6-now.weekday())
  
#上周第一天和最后一天
last_week_start = now - timedelta(days=now.weekday()+7)
last_week_end = now - timedelta(days=now.weekday()+1)
  
#本月第一天和最后一天
this_month_start = datetime.datetime(now.year, now.month, 1)
this_month_end = datetime.datetime(now.year, now.month + 1, 1) - timedelta(days=1)
  
#上月第一天和最后一天
last_month_end = this_month_start - timedelta(days=1)
last_month_start = datetime.datetime(last_month_end.year, last_month_end.month, 1)
  
#本季第一天和最后一天
month = (now.month - 1) - (now.month - 1) % 3 + 1
this_quarter_start = datetime.datetime(now.year, month, 1)
this_quarter_end = datetime.datetime(now.year, month + 3, 1) - timedelta(days=1)
  
#上季第一天和最后一天
last_quarter_end = this_quarter_start - timedelta(days=1)
last_quarter_start = datetime.datetime(last_quarter_end.year, last_quarter_end.month - 2, 1)
  
#本年第一天和最后一天
this_year_start = datetime.datetime(now.year, 1, 1)
this_year_end = datetime.datetime(now.year + 1, 1, 1) - timedelta(days=1)
  
#去年第一天和最后一天
last_year_end = this_year_start - timedelta(days=1)
last_year_start = datetime.datetime(last_year_end.year, 1, 1)
  


  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值