tools.py 1.9 KB

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