tools.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import datetime
  2. import hashlib
  3. import time
  4. def sha1(text: str):
  5. """
  6. 十六进制数字字符串形式摘要值
  7. @param text: 字符串文本
  8. @return: 摘要值
  9. """
  10. _sha1 = hashlib.sha1()
  11. _sha1.update(text.encode("utf-8"))
  12. return _sha1.hexdigest()
  13. def get_ms() -> int:
  14. return int(round(time.time() * 1000))
  15. def get_current_date():
  16. return datetime.datetime.now().strftime("%Y-%m-%d")
  17. def ms2date(ms: int, fmt="%Y-%m-%d %H:%M:%S"):
  18. """毫秒转日期"""
  19. timestamp = float(ms / 1000)
  20. time_array = time.localtime(timestamp)
  21. return time.strftime(fmt, time_array)
  22. def convert2type(ts_str):
  23. """字符串类型时间戳转成整型"""
  24. return int(float(ts_str) / 1000)
  25. def ts2date(ts_str, fmt="%Y-%m-%d %H:%M:%S") -> str:
  26. """
  27. 时间戳转成日期
  28. :param ts_str: 毫秒级时间戳
  29. :param fmt: 日期格式
  30. :return: 日期
  31. """
  32. timestamp = int(float(ts_str) / 1000)
  33. time_array = time.localtime(timestamp)
  34. return time.strftime(fmt, time_array)
  35. def date2ts(date_str: str, fmt="%Y-%m-%d"):
  36. """日期转成时间戳"""
  37. time_array = time.strptime(date_str, fmt)
  38. timestamp = int(time.mktime(time_array))
  39. return timestamp
  40. def delay_by(delay=0, method='seconds', fmt="%Y-%m-%d %H:%M:%S"):
  41. """按指定方式获得顺延时间"""
  42. _current_now = datetime.datetime.now()
  43. if method == 'days':
  44. _timedelta = datetime.timedelta(days=delay)
  45. elif method == 'hours':
  46. _timedelta = datetime.timedelta(hours=delay)
  47. elif method == 'minutes':
  48. _timedelta = datetime.timedelta(minutes=delay)
  49. elif method == 'microseconds':
  50. _timedelta = datetime.timedelta(microseconds=delay)
  51. else:
  52. _timedelta = datetime.timedelta(seconds=delay)
  53. return (_current_now + _timedelta).strftime(fmt)