更好用的时间处理模块arrow

开发十年,就只剩下这套Java开发体系了 >>>   hot3.png

import arrow


# Create your tests here.


class DateUtils(object):
    @staticmethod
    def get_today_start():
        now = arrow.utcnow().to("local")
        return now.floor("day")

    @staticmethod
    def get_today_end():
        now = arrow.utcnow().to("local")
        return now.ceil("day")

    @staticmethod
    def get_today_start_end():
        """获取当前天的开始和结束时间"""
        return DateUtils.get_today_start(), DateUtils.get_today_end()

    @staticmethod
    def get_week_start():
        now = arrow.utcnow().to("local")
        return now.floor("week")

    @staticmethod
    def get_week_end():
        now = arrow.utcnow().to("local")
        return now.ceil("week")

    @staticmethod
    def get_week_start_end():
        """获取当前周的开始和结束时间"""
        return DateUtils.get_week_start(), DateUtils.get_week_end()

    @staticmethod
    def get_month_start():
        now = arrow.utcnow().to("local")
        return now.floor("month")

    @staticmethod
    def get_month_end():
        now = arrow.utcnow().to("local")
        return now.ceil("month")

    @staticmethod
    def get_month_start_end():
        """获取当前月的开始和结束"""
        return DateUtils.get_month_start(), DateUtils.get_month_end()

    @staticmethod
    def get_quarter_start():
        now = arrow.utcnow().to("local")
        return now.floor("quarter")

    @staticmethod
    def get_quarter_end():
        now = arrow.utcnow().to("local")
        return now.ceil("quarter")

    @staticmethod
    def get_quarter_start_end():
        """获取当前季度的开始和结束时间"""
        return DateUtils.get_quarter_start(), DateUtils.get_quarter_end()

    @staticmethod
    def get_year_start():
        now = arrow.utcnow().to("local")
        return now.floor("year")

    @staticmethod
    def get_year_end():
        now = arrow.utcnow().to("local")
        return now.ceil("year")

    @staticmethod
    def get_year_start_end():
        """获取当前的开始和结束日期"""
        return DateUtils.get_year_start(), DateUtils.get_year_end()

    def get_quarter_name(self, month):
        d = {
            range(1, 4): "Q1",
            range(4, 7): "Q2",
            range(7, 10): "Q3",
            range(10, 13): "Q4",
        }

        for key, val in d.items():
            if month in key:
                return val

    @property
    def get_current_quarter(self):
        month = int(arrow.now().format("MM"))
        return self.get_quarter_name(month)
223916_bL9y_2663968.jpg

你可能感兴趣的:(更好用的时间处理模块arrow)