LocalDateTimeUtil.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #!/usr/bin/python3.6
  2. # -*- coding: utf-8 -*-
  3. #
  4. # Copyright (C) 2022 #
  5. # @Time : 2022/3/26 16:20
  6. # @Author : ming
  7. # @Email : zhangdongming@asj6.wecom.work
  8. # @File : LocalDateTimeUtil.py
  9. # @Software: PyCharm
  10. import datetime
  11. import time
  12. def get_last_first_date_and_last_date(n):
  13. """
  14. 获取前n周开始时间和结束时间,参数n:代表前n周
  15. """
  16. now = datetime.datetime.now()
  17. # 上周第一天和最后一天
  18. before_n_week_start = now - datetime.timedelta(days=now.weekday() + 7 * n, hours=now.hour, minutes=now.minute,
  19. seconds=now.second, microseconds=now.microsecond)
  20. # last_week_end = now - timedelta(days=now.weekday() + 1)
  21. before_n_week_end = before_n_week_start + datetime.timedelta(days=6, hours=23, minutes=59, seconds=59)
  22. return before_n_week_start, before_n_week_end
  23. def get_today_date(timestamp=False):
  24. """
  25. 返回当天开始时间和结束时间
  26. :param timestamp 是否返回时间戳
  27. :returns: zero_today ,last_today
  28. """
  29. now = datetime.datetime.now()
  30. zero_today = now - datetime.timedelta(hours=now.hour, minutes=now.minute, seconds=now.second,
  31. microseconds=now.microsecond)
  32. last_today = zero_today + datetime.timedelta(hours=23, minutes=59, seconds=59)
  33. if timestamp:
  34. zero_today = int(time.mktime(zero_today.timetuple()))
  35. last_today = int(time.mktime(last_today.timetuple()))
  36. return zero_today, last_today
  37. return zero_today, last_today
  38. if __name__ == "__main__":
  39. start_time, end_time = get_today_date(True)
  40. print('--- start_time = {} end_time = {}'.format(start_time, end_time))