diff options
Diffstat (limited to 'subplotlib/src/steplibrary/files.rs')
-rw-r--r-- | subplotlib/src/steplibrary/files.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/subplotlib/src/steplibrary/files.rs b/subplotlib/src/steplibrary/files.rs index 991cd88..1a55f7a 100644 --- a/subplotlib/src/steplibrary/files.rs +++ b/subplotlib/src/steplibrary/files.rs @@ -10,9 +10,10 @@ use std::io::{self, Write}; use std::path::PathBuf; use std::time::{Duration, SystemTime}; -use chrono::{TimeZone, Utc}; use filetime::FileTime; use regex::Regex; +use time::macros::format_description; +use time::OffsetDateTime; pub use crate::prelude::*; @@ -86,8 +87,12 @@ pub fn create_from_embedded_with_other_name( /// If the file does not exist, it will be created. #[step] pub fn touch_with_timestamp(context: &Datadir, filename: &str, mtime: &str) { - let ts = Utc.datetime_from_str(mtime, "%Y-%m-%d %H:%M:%S")?; - let (secs, nanos) = (ts.timestamp(), ts.timestamp_subsec_nanos()); + let fd = format_description!( + "[year]-[month]-[day] [hour]:[minute]:[second] [offset_hour]:[offset_minute]" + ); + let full_time = format!("{} +00:00", mtime); + let ts = OffsetDateTime::parse(&full_time, &fd)?; + let (secs, nanos) = (ts.unix_timestamp(), 0); let mtime = FileTime::from_unix_time(secs, nanos); let full_path = context.canonicalise_filename(filename)?; // If the file doesn't exist, create it |