Skip to content

rust.naive_datetime

Correctness Medium

Detects usage of timezone-unaware datetime types that cause subtle bugs.

Naive datetimes:

  • Time zone bugs — Comparisons across zones wrong
  • DST issues — Missing/duplicate hours
  • Data corruption — Stored times ambiguous
// ❌ 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);
}
}
  • NaiveDateTime in function signatures
  • NaiveDate for scheduling logic
  • Missing time zone conversions

Unfault can suggest DateTime<Utc> replacements.