@@ -13,8 +13,8 @@ class TestTimeParser(unittest.TestCase):
13
13
def test_time_parser (self ):
14
14
""" test func time_parser """
15
15
16
- _ts_1 = 1623604000
17
- _ts_2 = 1630480532
16
+ _ts_1 = 1623604000 # 2021-06-14 01:06:40
17
+ _ts_2 = 1630480532 # 2021-09-01 15:15:32
18
18
print ('time stamp for test: ' ,
19
19
time .strftime ('%Y-%m-%d %H:%M:%S' , time .localtime (_ts_1 )))
20
20
@@ -31,6 +31,7 @@ def test_time_parser(self):
31
31
['2019.05.29 15:20-2020.01.12 12:10' , _ts_1 , {'type' : 'time_span' , 'definition' : 'accurate' , 'time' : ['2019-05-29 15:20:00' , '2020-01-12 12:10:59' ]}],
32
32
['6·30' , _ts_1 , {'type' : 'time_point' , 'definition' : 'accurate' , 'time' : ['2021-06-30 00:00:00' , '2021-06-30 23:59:59' ]}],
33
33
['2018' , _ts_1 , {'type' : 'time_span' , 'definition' : 'accurate' , 'time' : ['2018-01-01 00:00:00' , '2018-12-31 23:59:59' ]}],
34
+ ['2021-09-0910:09' , _ts_1 , {'type' : 'time_point' , 'definition' : 'accurate' , 'time' : ['2021-09-09 10:09:00' , '2021-09-09 10:09:59' ]}],
34
35
35
36
# 年、月、日(标准)
36
37
['2015年8月12日' , _ts_1 , {'type' : 'time_point' , 'definition' : 'accurate' , 'time' : ['2015-08-12 00:00:00' , '2015-08-12 23:59:59' ]}],
@@ -114,7 +115,7 @@ def test_time_parser(self):
114
115
['二十几年前' , _ts_1 , {'type' : 'time_span' , 'definition' : 'blur' , 'time' : ['1991-01-01 00:00:00' , '2001-12-31 23:59:59' ]}],
115
116
['1000多年之后' , _ts_1 , {'type' : 'time_span' , 'definition' : 'blur' , 'time' : ['3020-01-01 00:00:00' , 'inf' ]}],
116
117
['几十年之后' , _ts_1 , {'type' : 'time_span' , 'definition' : 'blur' , 'time' : ['2041-01-01 00:00:00' , '2121-12-31 23:59:59' ]}],
117
- ['一刻钟后' , _ts_1 , {'type' : 'time_point' , 'definition' : 'accurate' , 'time' : ['2021-06-14 01:21:40' , '2021-06-14 01:22 :40' ]}],
118
+ ['一刻钟后' , _ts_1 , {'type' : 'time_point' , 'definition' : 'accurate' , 'time' : ['2021-06-14 01:21:40' , '2021-06-14 01:36 :40' ]}],
118
119
119
120
# time span 式 `从……至……` 年、月、日、时、分、秒
120
121
['2017年8月11日至8月22日' , _ts_1 , {'type' : 'time_span' , 'definition' : 'accurate' , 'time' : ['2017-08-11 00:00:00' , '2017-08-22 23:59:59' ]}],
@@ -146,6 +147,12 @@ def test_time_parser(self):
146
147
['三年前' , _ts_1 , {'type' : 'time_span' , 'definition' : 'blur' , 'time' : ['2018-01-01 00:00:00' , '2018-12-31 23:59:59' ]}],
147
148
['二〇三五年前' , _ts_1 , {'type' : 'time_span' , 'definition' : 'accurate' , 'time' : ['2021-06-14 01:06:40' , '2035-12-31 23:59:59' ]}],
148
149
150
+ # time_span,limit 型
151
+ ['前天中午到明天晚上' , _ts_1 , {'type' : 'time_span' , 'definition' : 'blur' , 'time' : ['2021-06-12 12:00:00' , '2021-06-15 23:59:59' ]}],
152
+ ['前年11月到去年3月' , _ts_1 , {'type' : 'time_span' , 'definition' : 'accurate' , 'time' : ['2019-11-01 00:00:00' , '2020-03-31 23:59:59' ]}],
153
+ ['2014年11月到去年3月' , _ts_1 , {'type' : 'time_span' , 'definition' : 'accurate' , 'time' : ['2014-11-01 00:00:00' , '2020-03-31 23:59:59' ]}],
154
+ ['2014年11月到下个月9号' , _ts_1 , {'type' : 'time_span' , 'definition' : 'accurate' , 'time' : ['2014-11-01 00:00:00' , '2021-07-09 23:59:59' ]}],
155
+
149
156
# time_span,枚举型
150
157
['9月10号,11号,12号,13号' , _ts_1 , {'type' : 'time_span' , 'definition' : 'accurate' , 'time' : ['2021-09-10 00:00:00' , '2021-09-13 23:59:59' ]}],
151
158
@@ -193,6 +200,11 @@ def test_time_parser(self):
193
200
['6月1日周六早上10点钟' , _ts_1 , {'type' : 'time_point' , 'definition' : 'accurate' , 'time' : ['2021-06-01 10:00:00' , '2021-06-01 10:59:59' ]}], # 当设定 strict 时会报错
194
201
['上个礼拜天' , _ts_1 , {'type' : 'time_point' , 'definition' : 'accurate' , 'time' : ['2021-06-13 00:00:00' , '2021-06-13 23:59:59' ]}],
195
202
203
+ # 年、周
204
+ ['20年第52周' , _ts_1 , {'type' : 'time_span' , 'definition' : 'accurate' , 'time' : ['2020-12-28 00:00:00' , '2021-01-03 23:59:59' ]}],
205
+ ['21年第一个礼拜' , _ts_1 , {'type' : 'time_span' , 'definition' : 'accurate' , 'time' : ['2021-01-04 00:00:00' , '2021-01-10 23:59:59' ]}],
206
+ ['今年第三十七个星期' , _ts_1 , {'type' : 'time_span' , 'definition' : 'accurate' , 'time' : ['2021-09-13 00:00:00' , '2021-09-19 23:59:59' ]}],
207
+
196
208
# 年、月、模糊日
197
209
['6月上旬' , {'year' : 2021 }, {'type' : 'time_span' , 'definition' : 'blur' , 'time' : ['2021-06-01 00:00:00' , '2021-06-10 23:59:59' ]}],
198
210
['1999年7月下旬' , time .time (), {'type' : 'time_span' , 'definition' : 'blur' , 'time' : ['1999-07-11 00:00:00' , '1999-07-31 23:59:59' ]}],
@@ -203,6 +215,12 @@ def test_time_parser(self):
203
215
# 限定年、月、模糊日
204
216
['去年6月上旬' , {'year' : 2021 }, {'type' : 'time_span' , 'definition' : 'blur' , 'time' : ['2020-06-01 00:00:00' , '2020-06-10 23:59:59' ]}],
205
217
218
+ # 超模糊 2 字
219
+ ['前两天' , _ts_1 , {'type' : 'time_span' , 'definition' : 'blur' , 'time' : ['2021-06-07 00:00:00' , '2021-06-12 23:59:59' ]}],
220
+ ['前两年' , _ts_1 , {'type' : 'time_span' , 'definition' : 'blur' , 'time' : ['2016-01-01 00:00:00' , '2019-12-31 23:59:59' ]}],
221
+ ['前两个钟头' , _ts_1 , {'type' : 'time_span' , 'definition' : 'blur' , 'time' : ['2021-06-13 19:00:00' , '2021-06-13 23:59:59' ]}],
222
+ ['前两分钟' , _ts_1 , {'type' : 'time_span' , 'definition' : 'blur' , 'time' : ['2021-06-14 00:57:00' , '2021-06-14 01:04:59' ]}],
223
+
206
224
# 限定日
207
225
['前天' , _ts_2 , {'type' : 'time_point' , 'definition' : 'accurate' , 'time' : ['2021-08-30 00:00:00' , '2021-08-30 23:59:59' ]}],
208
226
['后天' , _ts_1 , {'type' : 'time_point' , 'definition' : 'accurate' , 'time' : ['2021-06-16 00:00:00' , '2021-06-16 23:59:59' ]}],
@@ -284,6 +302,7 @@ def test_time_parser(self):
284
302
['两日' , None , {'type' : 'time_delta' , 'definition' : 'accurate' , 'time' : {'day' : 2.0 }}],
285
303
['俩礼拜' , None , {'type' : 'time_delta' , 'definition' : 'accurate' , 'time' : {'day' : 14.0 }}],
286
304
['36天5小时30分' , None , {'type' : 'time_delta' , 'definition' : 'accurate' , 'time' : {'day' : 36.0 , 'hour' : 5.0 , 'minute' : 30.0 }}],
305
+ ['1刻钟' , None , {'type' : 'time_delta' , 'definition' : 'accurate' , 'time' : {'minute' : 15.0 }}],
287
306
288
307
# 法律时间
289
308
['3年以上7年以下' , None , {'type' : 'time_delta' , 'definition' : 'blur' , 'time' : [{'year' : 3.0 }, {'year' : 7.0 }]}],
@@ -441,6 +460,21 @@ def test_time_parser(self):
441
460
print (item [0 ])
442
461
self .assertEqual (time_res , item [2 ])
443
462
463
+ time_string_list = [
464
+ # 未来时间扩展
465
+ ['8号晚上9点' , _ts_2 , {'type' : 'time_point' , 'definition' : 'accurate' , 'time' : ['2021-09-08 21:00:00' , '2021-09-08 21:59:59' ]}],
466
+ ['1号晚上9点' , _ts_2 , {'type' : 'time_point' , 'definition' : 'accurate' , 'time' : ['2021-09-01 21:00:00' , '2021-09-01 21:59:59' ]}],
467
+ ['3月8号' , _ts_2 , {'type' : 'time_span' , 'definition' : 'accurate' , 'time' : ['2022-03-08 00:00:00' , '2022-03-08 23:59:59' ]}],
468
+ ['10月8号' , _ts_2 , {'type' : 'time_point' , 'definition' : 'accurate' , 'time' : ['2021-10-08 00:00:00' , '2021-10-08 23:59:59' ]}],
469
+ ['周一' , _ts_2 , {'type' : 'time_point' , 'definition' : 'accurate' , 'time' : ['2021-09-06 00:00:00' , '2021-09-06 23:59:59' ]}],
470
+ ['妇女节' , _ts_2 , {'type' : 'time_point' , 'definition' : 'accurate' , 'time' : ['2022-03-08 00:00:00' , '2022-03-08 23:59:59' ]}],
471
+ ]
472
+
473
+ for item in time_string_list :
474
+ time_res = jio .parse_time (item [0 ], time_base = item [1 ], ret_future = True ) #, strict=True)
475
+ print (item [0 ])
476
+ self .assertEqual (time_res , item [2 ])
477
+
444
478
445
479
if __name__ == '__main__' :
446
480
0 commit comments