osm_io/osm/converters/
mod.rs1use anyhow::{anyhow, Error};
2use chrono::{DateTime, SecondsFormat};
3
4pub fn timestamp_to_iso8601_seconds(usec: i64) -> Result<String, Error> {
5 let datetime = DateTime::from_timestamp_micros(usec)
6 .ok_or(anyhow!("Invalid timestamp {}", usec))?;
7 Ok(datetime.to_rfc3339_opts(SecondsFormat::Secs, true))
8}
9
10#[cfg(test)]
11mod tests {
12 use crate::osm::converters::timestamp_to_iso8601_seconds;
13
14 #[test]
15 fn test_timestamp_to_iso8601_seconds() {
16 let result = timestamp_to_iso8601_seconds(0).unwrap();
17 assert_eq!(result, "1970-01-01T00:00:00Z");
18 }
19
20 #[test]
21 #[should_panic]
22 fn test_timestamp_to_iso8601_seconds_failure() {
23 timestamp_to_iso8601_seconds(i64::MAX).expect("Invalid input");
24 }
25}