1. #!/usr/bin/env python
    2. # -*- coding: utf-8 -*-
    3. #
    4. # @Author : lonie
    5. #
    6. # _____ ______
    7. # ____==== ]OO|_n_n__][. | |]
    8. # [________]_||________)<
    9. # oo oo 'oo OOOO-| oo\_ ~o~~~o~'
    10. # +--+--+--+--+--+--+--+--+--+--+--+--+--+
    11. # @Time : 2022/9/15 10:08
    12. # @FIle: TimeUtil.py
    13. # @Software: PyCharm
    14. import datetime
    15. d = datetime.datetime.now()
    16. print(type(d))
    17. class TimeUtil(object):
    18. @staticmethod
    19. def day_get(time: datetime.datetime) -> tuple():
    20. """
    21. 获得今天00:00 到今天23:59
    22. :return:
    23. date_from:2022-09-14 00:00:00
    24. date_to:2022-09-14 23:59:59
    25. """
    26. oneday = datetime.timedelta(days=1)
    27. day = time - oneday
    28. date_from = datetime.datetime(day.year, day.month, day.day, 0, 0, 0)
    29. date_to = datetime.datetime(day.year, day.month, day.day, 23, 59, 59)
    30. print('---'.join([str(date_from), str(date_to)]))
    31. # date_from = int(date_from.timestamp())
    32. # date_to = int(date_to.timestamp())
    33. # print('---'.join([str(date_from), str(date_to)]))
    34. return date_from, date_to
    35. @staticmethod
    36. def week_get(time: datetime.datetime) -> tuple():
    37. """
    38. 获得一周之前的时间,从当前时间到一周之前
    39. :return:
    40. """
    41. dayscount = datetime.timedelta(days=time.isoweekday())
    42. dayto = time - dayscount
    43. sixdays = datetime.timedelta(days=6)
    44. dayfrom = dayto - sixdays
    45. date_from = datetime.datetime(dayfrom.year, dayfrom.month, dayfrom.day, 0, 0, 0)
    46. date_to = datetime.datetime(dayto.year, dayto.month, dayto.day, 23, 59, 59)
    47. print('---'.join([str(date_from), str(date_to)]))
    48. return date_from, date_to
    49. @staticmethod
    50. def month_get(time: datetime.datetime) -> tuple():
    51. """
    52. 返回一个月之前的时间
    53. :return
    54. date_from: 2022-08-15 00:00:00
    55. date_to: 2022-09-15 23:59:59
    56. """
    57. dayscount = datetime.timedelta(days=31)
    58. dayto = time - dayscount
    59. date_from = datetime.datetime(dayto.year, dayto.month, dayto.day, 0, 0, 0)
    60. date_to = datetime.datetime(dayto.year, time.month, dayto.day, 23, 59, 59)
    61. print('---'.join([str(date_from), str(date_to)]))
    62. return date_from, date_to
    63. if __name == 'main':
    64. d = datetime.datetime.now()
    65. tmp = TimeUtil.day_get(time=d)
    66. print("tmp", tmp)
    67. tmp = TimeUtil.week_get(time=d)
    68. print("tmp", tmp)
    69. beginTime, endTime = TimeUtil.month_get(time=d)
    70. print('beginTime', str(beginTime), 'endTime', str(endTime))
    71. print('转化为时间戳:秒级别', int(beginTime.timestamp()))
    72. print('转化为时间戳毫秒级别', int(beginTime.timestamp() * 1000))
    73. print("tmp", str(tmp))