python - 计算时间差/时间戳/近期时间计算 总结:(time,datetime,timedelta,pandas)【待更新】

1. 较当前时间指定时间格式,并转换为时间戳

def current_day_go(days=30):	# days, minutes
    current_date = datetime.datetime.now()
    days_ago = current_date - datetime.timedelta(days=days)
    formatted_date = days_ago.strftime("%Y-%m-%d %H:%M:%S")
    return formatted_date

    # 转换成时间数组
    timeArray = time.strptime(formatted_date, "%Y-%m-%d %H:%M:%S")
    timestamp = int(time.mktime(timeArray))
    return timestamp

2. 时间戳转为时间

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

import time, datetime
from time import gmtime


def timestamp(the_time):
    s_t = time.strptime(the_time, "%Y-%m-%d %H:%M:%S")
    mkt = int(time.mktime(s_t))
    return mkt


# 时间戳转为时间
def exec_duration():
    now_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    date2 = "2022-07-27 12:04:20"

    now_stamp = timestamp(now_time)
    date2_stamp = timestamp(str(date2))

    print(now_stamp, date2_stamp)
    duration = time.strftime("%H:%M:%S", gmtime(now_stamp - int(date2_stamp)))
    print(duration)

3. datetime.timedelta模块

  • 介绍: “”"
    timedelta()函数的构造:
    datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
    对参数设定具体的值,达到计算的要求,如:
    设定:days=1 – 在原有时间上增加1天;
    设定:minutes=-30 – 在原有时间上减少30分钟
    “”"
  • 相关代码:
# -*- coding:utf-8 -*-
import datetime
import pandas as pd
from datetime import date


# today
"%m/%d/%Y %H:%M:%S %p"
print(time.strftime('%Y-%m-%dT23:00:00Z'))
# 昨天时间
print((date.today() + datetime.timedelta(days=-1)).strftime("%Y-%m-%dT23:00:00Z"))


def module_timedelta():
    # 1. timedelta()的基本用法
    dt1 = datetime.datetime(2022, 5, 12, 8, 30, 0)
    dt2 = dt1 + datetime.timedelta(days=1)
    dt3 = dt1 + datetime.timedelta(minutes=-30)
    print("dt1:", dt1)
    print("dt2:", dt2)
    print("dt3:", dt3)

    # 2. timedelta在dataframe中使用是,有广播的作用
    li = [["2022-05-6 10:00:00", "2022-05-10 08:30:00"],
          ["2022-05-7 08:30:00", "2022-05-10 12:30:00"],
          ["2022-05-9 12:00:00", "2022-05-10 14:30:00"]]
    df = pd.DataFrame(li, columns=["date1", "date2"])
    df.date1 = df.date1.map(lambda x: datetime.datetime.strptime(x, "%Y-%m-%d %H:%M:%S"))
    df.date2 = df.date2.map(lambda x: datetime.datetime.strptime(x, "%Y-%m-%d %H:%M:%S"))
    df["var1"] = df.date1 + datetime.timedelta(hours=1)
    df["var2"] = df.date2 + datetime.timedelta(days=30)
    print(df)

    print((date.today() + datetime.timedelta(days=-1)).strftime("%Y-%m-%d 23:00:00"))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值