>>> 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")
| 1754 | |
| 1755 | @run_safe_model("format_time") |
| 1756 | def 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")) |
nothing calls this directly
no test coverage detected