tools.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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 convert2type(ts: str):
  19. """时间字符串转换成整型"""
  20. return int(float(ts) / 1000)
  21. def ts2date(ts, fmt="%Y-%m-%d %H:%M:%S") -> str:
  22. """
  23. 时间戳转成日期
  24. :param ts: 时间戳
  25. :param fmt: 日期格式
  26. :return: 日期
  27. """
  28. # ms = int(ts / 1000)
  29. time_array = time.localtime(int(ts))
  30. return time.strftime(fmt, time_array)
  31. def ms2date(ms, fmt="%Y-%m-%d %H:%M:%S"):
  32. """毫秒转日期"""
  33. timestamp = float(ms / 1000)
  34. return ts2date(timestamp, fmt)
  35. def date2ts(date: str, fmt="%Y-%m-%d"):
  36. """日期转成时间戳"""
  37. time_array = time.strptime(date, 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)
  54. def detect_encoding(b):
  55. return json.detect_encoding(b)