mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
time: do not panic for time.parse("2020-02-02 20.02.20")!
, just return an error instead (fix #16779)
This commit is contained in:
parent
6b3f8f519d
commit
508bfbf892
@ -70,6 +70,9 @@ pub fn parse(s string) !Time {
|
|||||||
}
|
}
|
||||||
shms := s[pos..]
|
shms := s[pos..]
|
||||||
hms := shms.split(':')
|
hms := shms.split(':')
|
||||||
|
if hms.len != 3 {
|
||||||
|
return error_invalid_time(9)
|
||||||
|
}
|
||||||
hour_ := hms[0][1..]
|
hour_ := hms[0][1..]
|
||||||
minute_ := hms[1]
|
minute_ := hms[1]
|
||||||
second_ := hms[2]
|
second_ := hms[2]
|
||||||
|
@ -13,12 +13,15 @@ fn test_parse() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn test_parse_invalid() {
|
fn test_parse_invalid() {
|
||||||
s := 'Invalid time string'
|
if x := time.parse('Invalid time string') {
|
||||||
time.parse(s) or {
|
assert false
|
||||||
assert true
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
assert false
|
assert true
|
||||||
|
|
||||||
|
if x := time.parse('2020-02-02 02.20.02') {
|
||||||
|
assert false
|
||||||
|
}
|
||||||
|
assert true
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_parse_rfc2822() {
|
fn test_parse_rfc2822() {
|
||||||
@ -186,14 +189,14 @@ fn test_parse_rfc3339() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn test_ad_second_to_parse_result_in_2001() {
|
fn test_ad_second_to_parse_result_in_2001() {
|
||||||
now_tm := time.parse('2001-01-01 04:00:00')?
|
now_tm := time.parse('2001-01-01 04:00:00')!
|
||||||
future_tm := now_tm.add_seconds(60)
|
future_tm := now_tm.add_seconds(60)
|
||||||
assert future_tm.str() == '2001-01-01 04:01:00'
|
assert future_tm.str() == '2001-01-01 04:01:00'
|
||||||
assert now_tm.unix < future_tm.unix
|
assert now_tm.unix < future_tm.unix
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_ad_second_to_parse_result_pre_2001() {
|
fn test_ad_second_to_parse_result_pre_2001() {
|
||||||
now_tm := time.parse('2000-01-01 04:00:00')?
|
now_tm := time.parse('2000-01-01 04:00:00')!
|
||||||
future_tm := now_tm.add_seconds(60)
|
future_tm := now_tm.add_seconds(60)
|
||||||
assert future_tm.str() == '2000-01-01 04:01:00'
|
assert future_tm.str() == '2000-01-01 04:01:00'
|
||||||
assert now_tm.unix < future_tm.unix
|
assert now_tm.unix < future_tm.unix
|
||||||
|
Loading…
x
Reference in New Issue
Block a user