@@ -78,6 +78,7 @@ mod format {
7878 pub const YYYYMMDDHHMM_ZULU_OFFSET : & str = "%Y%m%d%H%MZ%z" ;
7979 pub const YYYYMMDDHHMM_HYPHENATED_OFFSET : & str = "%Y-%m-%d %H:%M %z" ;
8080 pub const YYYYMMDDHHMMSS_HYPHENATED_OFFSET : & str = "%Y-%m-%d %H:%M:%S %#z" ;
81+ pub const YYYYMMDDHHMMSS_T_SEP_HYPHENATED_OFFSET : & str = "%Y-%m-%dT%H:%M:%S%#z" ;
8182 pub const YYYYMMDDHHMMS_T_SEP : & str = "%Y-%m-%dT%H:%M:%S" ;
8283 pub const UTC_OFFSET : & str = "UTC%#z" ;
8384 pub const ZULU_OFFSET : & str = "Z%#z" ;
@@ -165,6 +166,7 @@ pub fn parse_datetime_at_date<S: AsRef<str> + Clone>(
165166 format:: YYYYMMDDHHMM_OFFSET ,
166167 format:: YYYYMMDDHHMM_HYPHENATED_OFFSET ,
167168 format:: YYYYMMDDHHMMSS_HYPHENATED_OFFSET ,
169+ format:: YYYYMMDDHHMMSS_T_SEP_HYPHENATED_OFFSET ,
168170 format:: YYYYMMDDHHMM_UTC_OFFSET ,
169171 format:: YYYYMMDDHHMM_ZULU_OFFSET ,
170172 ] {
@@ -321,6 +323,14 @@ mod tests {
321323 assert_eq ! ( actual. unwrap( ) . timestamp( ) , TEST_TIME ) ;
322324 }
323325
326+ #[ test]
327+ fn test_t_sep_single_digit_offset_no_space ( ) {
328+ env:: set_var ( "TZ" , "UTC" ) ;
329+ let dt = "2021-02-14T22:37:47-8" ;
330+ let actual = parse_datetime ( dt) ;
331+ assert_eq ! ( actual. unwrap( ) . timestamp( ) , TEST_TIME ) ;
332+ }
333+
324334 #[ test]
325335 fn invalid_formats ( ) {
326336 let invalid_dts = vec ! [ "NotADate" , "202104" , "202104-12T22:37:47" ] ;
0 commit comments