Skip to content

Commit 0a587bd

Browse files
committed
不适用第三方库,自写转换方式
1 parent ad779de commit 0a587bd

2 files changed

Lines changed: 49 additions & 5 deletions

File tree

feapder/utils/tools.py

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
from pprint import pprint
3535
from urllib import request
3636
from urllib.parse import urljoin
37-
import cn2an
3837

3938
import execjs # pip install PyExecJS
4039
import redis
@@ -1501,9 +1500,43 @@ def format_date(date, old_format="", new_format="%Y-%m-%d %H:%M:%S"):
15011500
return date_str
15021501

15031502

1503+
def transform_lower_num(data_str: str):
1504+
num_map = {
1505+
'一': '1',
1506+
'二': '2',
1507+
'三': '3',
1508+
'四': '4',
1509+
'五': '5',
1510+
'六': '6',
1511+
'七': '7',
1512+
'八': '8',
1513+
'九': '9',
1514+
'十': '0',
1515+
}
1516+
for n in num_map:
1517+
data_str = data_str.replace(n, num_map[n])
1518+
1519+
re_data_str = re.findall('\d+', data_str)
1520+
for i in re_data_str:
1521+
if len(i) == 3:
1522+
new_i = i.replace('0', '')
1523+
data_str = data_str.replace(i, new_i, 1)
1524+
elif len(i) == 4:
1525+
new_i = i.replace('10', '')
1526+
data_str = data_str.replace(i, new_i, 1)
1527+
elif len(i) == 2 and int(i) < 10:
1528+
new_i = int(i) + 10
1529+
data_str = data_str.replace(i, str(new_i), 1)
1530+
elif len(i) == 1 and int(i) == 0:
1531+
new_i = int(i) + 10
1532+
data_str = data_str.replace(i, str(new_i), 1)
1533+
1534+
return data_str.replace('零', '0')
1535+
1536+
15041537
@run_safe_model("format_time")
15051538
def format_time(release_time, date_format="%Y-%m-%d %H:%M:%S"):
1506-
release_time = cn2an.transform(release_time, "cn2an")
1539+
release_time = transform_lower_num(release_time)
15071540
release_time = release_time.replace('日','天')
15081541

15091542
if "年前" in release_time:

tests/test_tools.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,19 @@
11
from feapder.utils import tools
22

3-
time = "昨天"
3+
times = [
4+
'十',
5+
'十一',
6+
'二十一',
7+
"二零一五年十一月三日十三点五十四分十1秒",
8+
]
9+
for i in times:
10+
date = tools.transform_lower_num(i)
11+
print(i,date)
412

5-
date = tools.format_time(time)
6-
assert date == "2021-03-15 00:00:00"
13+
14+
15+
# date = tools.format_time(time)
16+
# print(date)
17+
# assert date == "2021-03-15 00:00:00"
718

819

0 commit comments

Comments
 (0)