@@ -395,15 +395,15 @@ impl FromStr for Datetime {
395
395
if date. month < 1 || date. month > 12 {
396
396
return Err ( DatetimeParseError :: new ( )
397
397
. what ( "date" )
398
- . expected ( "month between 1 and 12" ) ) ;
398
+ . expected ( "month between 01 and 12" ) ) ;
399
399
}
400
400
let is_leap_year =
401
401
( date. year % 4 == 0 ) && ( ( date. year % 100 != 0 ) || ( date. year % 400 == 0 ) ) ;
402
402
let ( max_days_in_month, expected_day) = match date. month {
403
- 2 if is_leap_year => ( 29 , "day between 1 and 29" ) ,
404
- 2 => ( 28 , "day between 1 and 28" ) ,
405
- 4 | 6 | 9 | 11 => ( 30 , "day between 1 and 30" ) ,
406
- _ => ( 31 , "day between 1 and 31" ) ,
403
+ 2 if is_leap_year => ( 29 , "day between 01 and 29" ) ,
404
+ 2 => ( 28 , "day between 01 and 28" ) ,
405
+ 4 | 6 | 9 | 11 => ( 30 , "day between 01 and 30" ) ,
406
+ _ => ( 31 , "day between 01 and 31" ) ,
407
407
} ;
408
408
if date. day < 1 || date. day > max_days_in_month {
409
409
return Err ( DatetimeParseError :: new ( )
@@ -516,18 +516,18 @@ impl FromStr for Datetime {
516
516
if time. hour > 23 {
517
517
return Err ( DatetimeParseError :: new ( )
518
518
. what ( "time" )
519
- . expected ( "hour between 0 and 23" ) ) ;
519
+ . expected ( "hour between 00 and 23" ) ) ;
520
520
}
521
521
if time. minute > 59 {
522
522
return Err ( DatetimeParseError :: new ( )
523
523
. what ( "time" )
524
- . expected ( "minute between 0 and 59" ) ) ;
524
+ . expected ( "minute between 00 and 59" ) ) ;
525
525
}
526
526
// 00-58, 00-59, 00-60 based on leap second rules
527
527
if time. second > 60 {
528
528
return Err ( DatetimeParseError :: new ( )
529
529
. what ( "time" )
530
- . expected ( "second between 0 and 60" ) ) ;
530
+ . expected ( "second between 00 and 60" ) ) ;
531
531
}
532
532
if time. nanosecond > 999_999_999 {
533
533
return Err ( DatetimeParseError :: new ( )
@@ -589,12 +589,12 @@ impl FromStr for Datetime {
589
589
if hours > 23 {
590
590
return Err ( DatetimeParseError :: new ( )
591
591
. what ( "offset" )
592
- . expected ( "hours between 0 and 23" ) ) ;
592
+ . expected ( "hours between 00 and 23" ) ) ;
593
593
}
594
594
if minutes > 59 {
595
595
return Err ( DatetimeParseError :: new ( )
596
596
. what ( "offset" )
597
- . expected ( "minutes between 0 and 59" ) ) ;
597
+ . expected ( "minutes between 00 and 59" ) ) ;
598
598
}
599
599
600
600
let total_minutes = sign * ( hours as i16 * 60 + minutes as i16 ) ;
0 commit comments