MCPcopy Create free account
hub / github.com/Boris-code/feapder / format_time

Function format_time

feapder/utils/tools.py:1756–1833  ·  view source on GitHub ↗

>>> format_time("2个月前") '2021-08-15 16:24:21' >>> format_time("2月前") '2021-08-15 16:24:36'

(release_time, date_format="%Y-%m-%d %H:%M:%S")

Source from the content-addressed store, hash-verified

1754
1755@run_safe_model("format_time")
1756def format_time(release_time, date_format="%Y-%m-%d %H:%M:%S"):
1757 """
1758 >>> format_time("2个月前")
1759 '2021-08-15 16:24:21'
1760 >>> format_time("2月前")
1761 '2021-08-15 16:24:36'
1762 """
1763 release_time = transform_lower_num(release_time)
1764 release_time = release_time.replace("日", "天").replace("/", "-")
1765
1766 if "年前" in release_time:
1767 years = re.compile("(\d+)\s*年前").findall(release_time)
1768 years_ago = datetime.datetime.now() - datetime.timedelta(
1769 days=int(years[0]) * 365
1770 )
1771 release_time = years_ago.strftime("%Y-%m-%d %H:%M:%S")
1772
1773 elif "月前" in release_time:
1774 months = re.compile("(\d+)[\s个]*月前").findall(release_time)
1775 months_ago = datetime.datetime.now() - datetime.timedelta(
1776 days=int(months[0]) * 30
1777 )
1778 release_time = months_ago.strftime("%Y-%m-%d %H:%M:%S")
1779
1780 elif "周前" in release_time:
1781 weeks = re.compile("(\d+)\s*周前").findall(release_time)
1782 weeks_ago = datetime.datetime.now() - datetime.timedelta(days=int(weeks[0]) * 7)
1783 release_time = weeks_ago.strftime("%Y-%m-%d %H:%M:%S")
1784
1785 elif "天前" in release_time:
1786 ndays = re.compile("(\d+)\s*天前").findall(release_time)
1787 days_ago = datetime.datetime.now() - datetime.timedelta(days=int(ndays[0]))
1788 release_time = days_ago.strftime("%Y-%m-%d %H:%M:%S")
1789
1790 elif "小时前" in release_time:
1791 nhours = re.compile("(\d+)\s*小时前").findall(release_time)
1792 hours_ago = datetime.datetime.now() - datetime.timedelta(hours=int(nhours[0]))
1793 release_time = hours_ago.strftime("%Y-%m-%d %H:%M:%S")
1794
1795 elif "分钟前" in release_time:
1796 nminutes = re.compile("(\d+)\s*分钟前").findall(release_time)
1797 minutes_ago = datetime.datetime.now() - datetime.timedelta(
1798 minutes=int(nminutes[0])
1799 )
1800 release_time = minutes_ago.strftime("%Y-%m-%d %H:%M:%S")
1801
1802 elif "前天" in release_time:
1803 today = datetime.date.today()
1804 yesterday = today - datetime.timedelta(days=2)
1805 release_time = release_time.replace("前天", str(yesterday))
1806
1807 elif "昨天" in release_time:
1808 today = datetime.date.today()
1809 yesterday = today - datetime.timedelta(days=1)
1810 release_time = release_time.replace("昨天", str(yesterday))
1811
1812 elif "今天" in release_time:
1813 release_time = release_time.replace("今天", get_current_date("%Y-%m-%d"))

Callers

nothing calls this directly

Calls 3

transform_lower_numFunction · 0.85
get_current_dateFunction · 0.85
format_dateFunction · 0.85

Tested by

no test coverage detected