Python DateTimeHelper

本文介绍了Python DateTimeHelper类的实现,包含时间戳获取、日期格式化、日期加减、日期比较、月份天数、月首月末、周首周末等常用日期时间处理函数,代码可直接复用。

作者:zhuge···预计阅读 48 分钟·612 阅读·0 评论
Python DateTimeHelper

花了一个晚上做的,以后可以直接来用

用法 Python 日期和时间

import calendar
import datetime
import time

class DateTimeHelper:     '''     时间函数     Author:梦白沙     '''

    def init(self):         pass

    def get_timeStamp(self):         '''         :return:返回时间戳         '''         return time.time()

    def get_today_date_str(self, f_str='%Y-%m-%d'):         '''         获取当天日期         :param f_str: 格式 ,默认%Y-%m-%d         :return:         '''         return time.strftime(f_str, time.localtime())

    def get_today_datetime_str(self, f_str='%Y-%m-%d %H-%M-%S'):         '''         获取当前时间字符串         :param f_str: 格式 ,默认%Y-%m-%d %H-%M-%S         :return:         '''         return time.strftime(f_str, time.localtime())

    def get_timeStruct_from_dt_str(self, dt_str, dt_f='%Y-%m-%d %H:%M:%S'):         '''         将字符串日期转换为时间数组         :param dt_str:字符串日期转换         :param dt_f:格式 默认'%Y-%m-%d %H:%M:%S'         :return:时间数组         '''         return time.strptime(dt_str, "%Y-%m-%d %H:%M:%S")

    def get_dt_str_from_timestamp(self, timeStamp, dt_f='%Y-%m-%d %H:%M:%S'):         '''         时间戳转换为指定格式日期         :param timeStamp:字符串日期转换         :param dt_f:格式 默认'%Y-%m-%d %H:%M:%S'         :return:时间数组         '''         localTime = time.localtime(timeStamp)         return time.strftime(dt_f, localTime)

    def get_timeStamp_from_dt_str(self, dt_str, dt_f='%Y-%m-%d %H:%M:%S'):         '''         将字符串的时间转换为时间戳         :param dt_str: 字符串日期转换         :param dt_f: 格式 默认'%Y-%m-%d %H:%M:%S'         :return: 时间戳         '''         timeStruct = self.get_ts_from_dt_str(dt_str, dt_f)         return (int(time.mktime(timeStruct)))

    def get_day_of_days_by_timeStamp(self, timeStamp, n=0, f_str_out='%Y-%m-%d', ):         '''         计算几天之后的日期         :param timeStamp: 源时间,类型timeStamp         :param n: 时间差 正数表示几天之后,负数表示几天之前         :param f_str_out: 输出的格式,timestamp表示时间戳,timestruct表示时间数组,其他表示格式化时间,默认'%Y-%m-%d'         :return:         '''         dt = datetime.datetime.fromtimestamp(timeStamp)         return self.get_day_of_days_by_dt(dt, n, f_str_out)

    def get_day_of_days_by_timeStr(self, timeStr, n=0, f_str='%Y-%m-%d', f_str_out='%Y-%m-%d'):         '''         计算几天之后的日期         :param timeStr: 源时间,类型时间字符串         :param n: 时间差 正数表示几天之后,负数表示几天之前         :param f_str: 时间字符串格式 默认 '%Y-%m-%d'         :param f_str_out: 输出的格式,timestamp表示时间戳,timestruct表示时间数组,其他表示格式化时间,默认'%Y-%m-%d'         :return:         '''         dt = datetime.datetime.strptime(timeStr, f_str)         return self.get_day_of_days_by_dt(dt, n, f_str_out)

    def get_day_of_days_by_dt(self, d, n=0, f_str_out='%Y-%m-%d'):         '''         计算几天之后的日期         :param d: 源时间,类型datetime.datetime         :param n: 时间 正数表示几天之后,负数表示几天之前         :param f_str_out: 输出的格式,timestamp表示时间戳,timestruct表示时间数组,其他表示格式化时间,默认'%Y-%m-%d'         :return: 返回几天或几天之后的日期         '''         dt = d - datetime.timedelta(days=n) if (n < 0) else d + datetime.timedelta(days=abs(n))         if f_str_out == 'timestamp':             return self.get_timeStamp_from_dt_str(dt.strftime(f_str_out))         elif f_str_out == 'timestruct':             return self.get_timeStruct_from_dt_str(dt.strftime(f_str_out))         else:             return dt.strftime(f_str_out)

    def get_dt_diff_timestamp(self, dt1, dt2):         '''         根据时间戳比较两个日期之差         :param dt1:         :param dt2:         :return: 时间差 类型datetime.timedelta         '''         dt1 = datetime.datetime.fromtimestamp(dt1)         dt2 = datetime.datetime.fromtimestamp(dt2)         return self.get_dt_diff(dt1, dt2)

    def get_dt_diff_timestr(self, dt1, dt2, f_str='%Y-%m-%d %H:%M:%S'):         '''         根据时间字符串比较两个日期之差         :param dt1:         :param dt2:         :param f_str: 字条串格式,默认 %Y-%m-%d %H:%M:%S         :return: 时间差 类型datetime.timedelta         '''         dt1 = datetime.datetime.strptime(dt1, f_str)         dt2 = datetime.datetime.strptime(dt2, f_str)         return self.get_dt_diff(dt1, dt2)

    def get_dt_diff(self, dt1, dt2):         '''         比较两个日期之差         :param dt1: 日期1         :param dt2: 日期2         :return:时间差 类型datetime.timedelta         '''         return dt1 - dt2

    def get_days_of_month(self, year, mon):         '''

        :param year:年         :param mon: 月         :return: 第一个整数:代表本月起始星期数(0:星期一 ... 6:星期天)第二个整数:代表本月最后一天的日期数         '''         return calendar.monthrange(year, mon)

    def get_1stday_of_month(self, year, mon, splite='-'):         '''         获取指定月的第一天         :param year: 年         :param mon: 月         :param splite: 日期分隔符,默认 -         :return:         '''         days = '01'         if int(mon) < 10:             mon = '0' + str(int(mon))         arr = (year, mon, days)         return splite.join('%s' % i for i in arr)     def get_lastday_of_month(self, year, mon, splite='-'):         '''          获取指定月的最后一天         :param year:         :param mon:         :param splite:         :return:         '''         days= self.get_days_of_month(year, mon)[1]         if int(mon) < 10:             mon = '0' + str(int(mon))         arr = (year, mon, days)         return splite.join('%s' % i for i in arr)

    def get_1stday_of_week(self,f_str='%Y-%m-%d' ):         '''         获取本周第一天         :param f_str:输出的格式         :return:         '''         now = datetime.datetime.now()         dt = now - datetime.timedelta(days=now.weekday())         return dt.strftime(f_str)

    def get_lastday_of_week(self,f_str='%Y-%m-%d' ):         '''         获取本周最后一天         :param f_str:输出的格式         :return:         '''         now = datetime.datetime.now()         dt = now + datetime.timedelta(days=6 - now.weekday())         return dt.strftime(f_str)


相关文章

评论

加载中...