@@ -854,9 +854,11 @@ fn test_rfc2822() {
854
854
( "Tue, 20 Jan 2015 17:35:20 -0890" , Err ( OUT_OF_RANGE ) ) , // bad offset
855
855
( "6 Jun 1944 04:00:00Z" , Err ( INVALID ) ) , // bad offset (zulu not allowed)
856
856
( "Tue, 20 Jan 2015 17:35:20 HAS" , Err ( NOT_ENOUGH ) ) , // bad named time zone
857
- // named timezones
857
+ // named timezones that have specific timezone offsets
858
+ // see https://www.rfc-editor.org/rfc/rfc2822#section-4.3
858
859
( "Tue, 20 Jan 2015 17:35:20 GMT" , Ok ( "Tue, 20 Jan 2015 17:35:20 +0000" ) ) ,
859
860
( "Tue, 20 Jan 2015 17:35:20 UT" , Ok ( "Tue, 20 Jan 2015 17:35:20 +0000" ) ) ,
861
+ ( "Tue, 20 Jan 2015 17:35:20 ut" , Ok ( "Tue, 20 Jan 2015 17:35:20 +0000" ) ) ,
860
862
( "Tue, 20 Jan 2015 17:35:20 EDT" , Ok ( "Tue, 20 Jan 2015 17:35:20 -0400" ) ) ,
861
863
( "Tue, 20 Jan 2015 17:35:20 EST" , Ok ( "Tue, 20 Jan 2015 17:35:20 -0500" ) ) ,
862
864
( "Tue, 20 Jan 2015 17:35:20 CDT" , Ok ( "Tue, 20 Jan 2015 17:35:20 -0500" ) ) ,
@@ -865,9 +867,15 @@ fn test_rfc2822() {
865
867
( "Tue, 20 Jan 2015 17:35:20 MST" , Ok ( "Tue, 20 Jan 2015 17:35:20 -0700" ) ) ,
866
868
( "Tue, 20 Jan 2015 17:35:20 PDT" , Ok ( "Tue, 20 Jan 2015 17:35:20 -0700" ) ) ,
867
869
( "Tue, 20 Jan 2015 17:35:20 PST" , Ok ( "Tue, 20 Jan 2015 17:35:20 -0800" ) ) ,
870
+ ( "Tue, 20 Jan 2015 17:35:20 pst" , Ok ( "Tue, 20 Jan 2015 17:35:20 -0800" ) ) ,
871
+ // named single-letter military timezones must fallback to +0000
868
872
( "Tue, 20 Jan 2015 17:35:20 Z" , Ok ( "Tue, 20 Jan 2015 17:35:20 +0000" ) ) ,
869
873
( "Tue, 20 Jan 2015 17:35:20 A" , Ok ( "Tue, 20 Jan 2015 17:35:20 +0000" ) ) ,
874
+ ( "Tue, 20 Jan 2015 17:35:20 a" , Ok ( "Tue, 20 Jan 2015 17:35:20 +0000" ) ) ,
870
875
( "Tue, 20 Jan 2015 17:35:20 K" , Ok ( "Tue, 20 Jan 2015 17:35:20 +0000" ) ) ,
876
+ ( "Tue, 20 Jan 2015 17:35:20 k" , Ok ( "Tue, 20 Jan 2015 17:35:20 +0000" ) ) ,
877
+ // named single-letter timezone "J" is specifically not valid
878
+ ( "Tue, 20 Jan 2015 17:35:20 J" , Err ( NOT_ENOUGH ) ) ,
871
879
] ;
872
880
873
881
fn rfc2822_to_datetime ( date : & str ) -> ParseResult < DateTime < FixedOffset > > {
0 commit comments