python3常用时间处理工具整理-实用工作备忘

整理工作中常用的时间处理方法

# coding:utf-8
import time
import datetime


def gap_day(time_str, date=None, format="%Y-%m-%d"):
    """
    :判断自然日差几天
    :param time_str: 2019-02-19 21:49:20
    :return:
    """
    if not date:
        date = time.strftime(format)
    now_day_stamps = time.mktime(time.strptime(date, format))
    if " " in format:
        format = format.split(" ")[0]
    input_stamps = time.mktime(time.strptime(time_str.split(" ")[0], format))
    return int(abs((now_day_stamps - input_stamps)) // 86400)


def gap_stamps_day(time_str, now_day_stamps=None):
    """
    :判断绝对时间差几天
    :param time_str: 2019-02-19 21:49:20
    :return:
    """
    if not now_day_stamps:
        now_day_stamps = time.time()
    input_stamps = time.mktime(time.strptime(time_str, "%Y-%m-%d %H:%M:%S"))
    return int(abs((now_day_stamps - input_stamps)) // 86400)


def gap_stamps_hour(time_str):
    """
    :判断绝对上差几个小时
    :param time_str: 2019-02-19 21:49:20
    :return:
    """
    now = int(time.time())
    input_stamps = time.mktime(time.strptime(time_str, "%Y-%m-%d %H:%M:%S"))
    return int(abs((now - input_stamps)) // 3600)


def gap_stamps_minute(time_str):
    """
    :判断绝对上差几个分钟
    :param time_str: 2019-02-19 21:49:20
    :return:
    """
    now = int(time.time())
    input_stamps = time.mktime(time.strptime(time_str, "%Y-%m-%d %H:%M:%S"))
    return int(abs((now - input_stamps)) // 60)


def get_time_stamp(timeStr, format="%Y-%m-%d %H:%M:%S"):
    """
        获取时间戳
    :param timeStr: 2019-05-12 09:00:00
    :param format: "%Y-%m-%d %H:%M:%S"
    :return:
    """
    timeArray = time.strptime(timeStr, format)
    timestamp = time.mktime(timeArray)
    return int(timestamp)


def gap_stamps_sec(time_str):
    """
    :判断绝对上差几秒
    :param time_str: 2019-02-19 21:49:20
    :return:
    """

    now = int(time.time())
    input_stamps = time.mktime(time.strptime(time_str, "%Y-%m-%d %H:%M:%S"))
    return int(abs((now - input_stamps)))


def get_day_jia(date, n, format='%Y-%m-%d'):
    """
    时间加n天
    :param date:
    :param n:
    :return:
    """
    jia_date = datetime.datetime.strptime(date, format)
    jia_date = jia_date + datetime.timedelta(days=n)
    return jia_date.strftime(format)


def get_sec_jia(seconds, format="%Y-%m-%d %H:%M:%S"):
    """
    当前时间加多少秒
    :param seconds:
    :param format:
    :return: 2019-12-30 19:25:30
    """
    return (datetime.datetime.now() + datetime.timedelta(seconds=seconds)).strftime(format)


def get_ts_to_time(ts):
    """时间戳转字符串"""
    return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(ts))


def day_long(time1, time2):
    """
    计算时间差
    :return: 相差的天数
    """
    ts1 = get_time_stamp(time1)
    ts2 = get_time_stamp(time2)
    date1 = datetime.datetime.fromtimestamp(ts1)
    date2 = datetime.datetime.fromtimestamp(ts2)
    return abs(int((date2 - date1).days))

参考链接

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值