rust.naive_datetime
Correctness
Medium
Detects usage of timezone-unaware datetime types that cause subtle bugs.
Why It Matters
Section titled “Why It Matters”Naive datetimes:
- Time zone bugs — Comparisons across zones wrong
- DST issues — Missing/duplicate hours
- Data corruption — Stored times ambiguous
Example
Section titled “Example”// ❌ Before (naive datetime)use chrono::NaiveDateTime;
fn schedule_task(at: NaiveDateTime) { // What time zone is this in?! if at > Utc::now().naive_utc() { queue.schedule(at); }}// ✅ After (timezone-aware datetime)use chrono::{DateTime, Utc};
fn schedule_task(at: DateTime<Utc>) { // Explicit UTC - no ambiguity if at > Utc::now() { queue.schedule(at); }}What Unfault Detects
Section titled “What Unfault Detects”- NaiveDateTime in function signatures
- NaiveDate for scheduling logic
- Missing time zone conversions
Auto-Fix
Section titled “Auto-Fix”Unfault can suggest DateTime<Utc> replacements.