diff --git a/vlib/time/date_time_parser.v b/vlib/time/date_time_parser.v index f3f08b8b10..a1ea072af1 100644 --- a/vlib/time/date_time_parser.v +++ b/vlib/time/date_time_parser.v @@ -163,7 +163,7 @@ fn (mut p DateTimeParser) parse() !Time { } } 'YY' { - year_ = p.must_be_int(2) or { + year_ = now().year / 100 * 100 + p.must_be_int(2) or { return error_invalid_time(0, 'end of string reached before the full year was specified') } } diff --git a/vlib/time/parse_test.v b/vlib/time/parse_test.v index 035d2c6411..cdf962e97d 100644 --- a/vlib/time/parse_test.v +++ b/vlib/time/parse_test.v @@ -209,7 +209,6 @@ fn test_parse_format() { assert false return } - assert t.year == 2018 && t.month == 1 && t.day == 27 && t.hour == 12 && t.minute == 48 && t.second == 34 @@ -222,8 +221,8 @@ fn test_parse_format() { assert t.year == 2018 && t.month == 11 && t.day == 27 && t.hour == 12 && t.minute == 48 && t.second == 20 - s = '2018-1-2 1:8:2' - t = time.parse_format(s, 'YYYY-M-D H:m:s') or { + s = '18-1-2 1:8:2' + t = time.parse_format(s, 'YY-M-D H:m:s') or { eprintln('> failing format: ${s} | err: ${err}') assert false return