lakestream 0.0.2

Portable file-utility for object-stores
Documentation
use time::format_description::well_known::Rfc3339;
use time::OffsetDateTime;

pub fn rfc3339_to_epoch(timestamp: &str) -> Result<u64, time::Error> {
    let datetime = OffsetDateTime::parse(timestamp, &Rfc3339)?;
    Ok(datetime.unix_timestamp() as u64)
}

pub fn epoch_to_rfc3339(timestamp: u64) -> Result<String, time::Error> {
    let datetime = OffsetDateTime::from_unix_timestamp(timestamp as i64)?;
    Ok(datetime.to_string())
}

pub fn datetime_utc() -> (u32, u8, u8, u8, u8, u8) {
    let time = OffsetDateTime::now_utc();
    (
        time.year() as u32,
        time.month() as u8,
        time.day(),
        time.hour(),
        time.minute(),
        time.second(),
    )
}