Python DateTimeHelper 本文共有14332个字,关键词: 花了一个晚上做的,以后可以直接来用用法 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) 「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」 赞赏 × 梦白沙 (๑>ڡ<)☆谢谢老板~ 1元 2元 5元 10元 50元 任意金额 2元 使用微信扫描二维码完成支付 版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。 Python 2022-04-23 评论 309 次浏览