Improved errors in times.parse.
This commit is contained in:
parent
903452e96e
commit
a88131ed4a
1 changed files with 14 additions and 7 deletions
|
|
@ -789,7 +789,8 @@ proc parseToken(info: var TimeInfo; token, value: string; j: var int) =
|
||||||
of "sat":
|
of "sat":
|
||||||
info.weekday = dSat
|
info.weekday = dSat
|
||||||
else:
|
else:
|
||||||
raise newException(ValueError, "invalid day of week ")
|
raise newException(ValueError,
|
||||||
|
"Couldn't parse day of week (ddd), got: " & value[j..j+2])
|
||||||
j += 3
|
j += 3
|
||||||
of "dddd":
|
of "dddd":
|
||||||
if value.len >= j+6 and value[j..j+5].cmpIgnoreCase("sunday") == 0:
|
if value.len >= j+6 and value[j..j+5].cmpIgnoreCase("sunday") == 0:
|
||||||
|
|
@ -814,7 +815,8 @@ proc parseToken(info: var TimeInfo; token, value: string; j: var int) =
|
||||||
info.weekday = dSat
|
info.weekday = dSat
|
||||||
j += 8
|
j += 8
|
||||||
else:
|
else:
|
||||||
raise newException(ValueError, "invalid day of week ")
|
raise newException(ValueError,
|
||||||
|
"Couldn't parse day of week (dddd), got: " & value)
|
||||||
of "h", "H":
|
of "h", "H":
|
||||||
var pd = parseInt(value[j..j+1], sv)
|
var pd = parseInt(value[j..j+1], sv)
|
||||||
info.hour = sv
|
info.hour = sv
|
||||||
|
|
@ -865,7 +867,8 @@ proc parseToken(info: var TimeInfo; token, value: string; j: var int) =
|
||||||
of "dec":
|
of "dec":
|
||||||
info.month = mDec
|
info.month = mDec
|
||||||
else:
|
else:
|
||||||
raise newException(ValueError, "invalid month")
|
raise newException(ValueError,
|
||||||
|
"Couldn't parse month (MMM), got: " & value)
|
||||||
j += 3
|
j += 3
|
||||||
of "MMMM":
|
of "MMMM":
|
||||||
if value.len >= j+7 and value[j..j+6].cmpIgnoreCase("january") == 0:
|
if value.len >= j+7 and value[j..j+6].cmpIgnoreCase("january") == 0:
|
||||||
|
|
@ -905,7 +908,8 @@ proc parseToken(info: var TimeInfo; token, value: string; j: var int) =
|
||||||
info.month = mDec
|
info.month = mDec
|
||||||
j += 8
|
j += 8
|
||||||
else:
|
else:
|
||||||
raise newException(ValueError, "invalid month")
|
raise newException(ValueError,
|
||||||
|
"Couldn't parse month (MMMM), got: " & value)
|
||||||
of "s":
|
of "s":
|
||||||
var pd = parseInt(value[j..j+1], sv)
|
var pd = parseInt(value[j..j+1], sv)
|
||||||
info.second = sv
|
info.second = sv
|
||||||
|
|
@ -936,7 +940,8 @@ proc parseToken(info: var TimeInfo; token, value: string; j: var int) =
|
||||||
elif value[j] == '-':
|
elif value[j] == '-':
|
||||||
info.timezone = 0-parseInt($value[j+1])
|
info.timezone = 0-parseInt($value[j+1])
|
||||||
else:
|
else:
|
||||||
raise newException(ValueError, "Sign for timezone " & value[j])
|
raise newException(ValueError,
|
||||||
|
"Couldn't parse timezone offset (z), got: " & value[j])
|
||||||
j += 2
|
j += 2
|
||||||
of "zz":
|
of "zz":
|
||||||
if value[j] == '+':
|
if value[j] == '+':
|
||||||
|
|
@ -944,7 +949,8 @@ proc parseToken(info: var TimeInfo; token, value: string; j: var int) =
|
||||||
elif value[j] == '-':
|
elif value[j] == '-':
|
||||||
info.timezone = 0-value[j+1..j+2].parseInt()
|
info.timezone = 0-value[j+1..j+2].parseInt()
|
||||||
else:
|
else:
|
||||||
raise newException(ValueError, "Sign for timezone " & value[j])
|
raise newException(ValueError,
|
||||||
|
"Couldn't parse timezone offset (zz), got: " & value[j])
|
||||||
j += 3
|
j += 3
|
||||||
of "zzz":
|
of "zzz":
|
||||||
if value[j] == '+':
|
if value[j] == '+':
|
||||||
|
|
@ -952,7 +958,8 @@ proc parseToken(info: var TimeInfo; token, value: string; j: var int) =
|
||||||
elif value[j] == '-':
|
elif value[j] == '-':
|
||||||
info.timezone = 0-value[j+1..j+2].parseInt()
|
info.timezone = 0-value[j+1..j+2].parseInt()
|
||||||
else:
|
else:
|
||||||
raise newException(ValueError, "Sign for timezone " & value[j])
|
raise newException(ValueError,
|
||||||
|
"Couldn't parse timezone offset (zzz), got: " & value[j])
|
||||||
j += 6
|
j += 6
|
||||||
of "ZZZ":
|
of "ZZZ":
|
||||||
info.tzname = value[j..j+2].toUpper()
|
info.tzname = value[j..j+2].toUpper()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue