# pydantic_core._pydantic_core.ValidationError: 1 validation error for Event
timestamp
  Input should be a valid datetime, invalid date separator, expected 'T' or ' ' [type=datetime_parsing, input_value='2024-01-15_10:30:00', input_type=str]

- **ID:** `python/pydantic-validation-error-datetime-parsing`
- **Domain:** python
- **Category:** data_error
- **Verification:** ai_generated
- **Fix Rate:** 80%

## Root Cause

The datetime string uses an invalid separator (e.g. underscore). Pydantic v2 uses RFC 3339 / ISO 8601 parsing and requires 'T' or a space between date and time.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 2.x | active | — | — |

## Workarounds

1. **** (95% success)
   ```
   value = '2024-01-15_10:30:00'.replace('_', 'T', 1)
   ```
2. **** (92% success)
   ```
   from datetime import datetime
from pydantic import BaseModel, field_validator

class Event(BaseModel):
    timestamp: datetime

    @field_validator('timestamp', mode='before')
    @classmethod
    def parse_dt(cls, v):
        if isinstance(v, str):
            return datetime.strptime(v, '%Y-%m-%d_%H:%M:%S')
        return v
   ```

## Dead Ends

- **** — strptime works but bypasses Pydantic validation, so type errors surface later as AttributeError. (60% fail)
- **** — Loses timezone-aware comparison and arithmetic capabilities. (75% fail)
