更好用的时间处理模块arrow

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值