tp_lib_core/temporal.rs
1//! Temporal utilities for timezone handling
2
3use crate::errors::ProjectionError;
4use chrono::{DateTime, FixedOffset};
5
6/// Parse RFC3339 timestamp with timezone validation
7pub fn parse_rfc3339_with_timezone(s: &str) -> Result<DateTime<FixedOffset>, ProjectionError> {
8 DateTime::parse_from_rfc3339(s)
9 .map_err(|e| ProjectionError::MissingTimezone(format!("Invalid timestamp: {}", e)))
10}
11
12/// Validate that timezone information is present
13pub fn validate_timezone_present(_dt: &DateTime<FixedOffset>) -> Result<(), ProjectionError> {
14 // DateTime<FixedOffset> always has timezone, this is a type-level guarantee
15 // This function exists for API consistency
16 Ok(())
17}