Merge pull request #103 from jfinkels/parse-datetime-with-single-digit-offset-t-sep

Parse datetime with T separator and single digit offset
This commit is contained in:
Sylvestre Ledru
2025-01-19 23:07:12 +01:00
committed by GitHub
+10
View File
@@ -78,6 +78,7 @@ mod format {
pub const YYYYMMDDHHMM_ZULU_OFFSET: &str = "%Y%m%d%H%MZ%z";
pub const YYYYMMDDHHMM_HYPHENATED_OFFSET: &str = "%Y-%m-%d %H:%M %z";
pub const YYYYMMDDHHMMSS_HYPHENATED_OFFSET: &str = "%Y-%m-%d %H:%M:%S %#z";
pub const YYYYMMDDHHMMSS_T_SEP_HYPHENATED_OFFSET: &str = "%Y-%m-%dT%H:%M:%S%#z";
pub const YYYYMMDDHHMMS_T_SEP: &str = "%Y-%m-%dT%H:%M:%S";
pub const UTC_OFFSET: &str = "UTC%#z";
pub const ZULU_OFFSET: &str = "Z%#z";
@@ -165,6 +166,7 @@ pub fn parse_datetime_at_date<S: AsRef<str> + Clone>(
format::YYYYMMDDHHMM_OFFSET,
format::YYYYMMDDHHMM_HYPHENATED_OFFSET,
format::YYYYMMDDHHMMSS_HYPHENATED_OFFSET,
format::YYYYMMDDHHMMSS_T_SEP_HYPHENATED_OFFSET,
format::YYYYMMDDHHMM_UTC_OFFSET,
format::YYYYMMDDHHMM_ZULU_OFFSET,
] {
@@ -321,6 +323,14 @@ mod tests {
assert_eq!(actual.unwrap().timestamp(), TEST_TIME);
}
#[test]
fn test_t_sep_single_digit_offset_no_space() {
env::set_var("TZ", "UTC");
let dt = "2021-02-14T22:37:47-8";
let actual = parse_datetime(dt);
assert_eq!(actual.unwrap().timestamp(), TEST_TIME);
}
#[test]
fn invalid_formats() {
let invalid_dts = vec!["NotADate", "202104", "202104-12T22:37:47"];