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)
更好用的时间处理模块arrow
最新推荐文章于 2024-08-19 10:45:19 发布