๐ท C# Time Handling Guide
Master C#'s DateTimeOffset, DateTime, and TimeZoneInfo for robust time handling in .NET applications.
โก Quick Reference
โ Use
- โข DateTimeOffset for timestamps
- โข TimeZoneInfo for timezone operations
- โข DateTime.UtcNow for UTC times
- โข DateTimeKind.Utc explicitly
- โข TimeSpan for durations
โ Avoid
- โข DateTime.Now for storage
- โข DateTime without Kind specified
- โข Hardcoded timezone offsets
- โข TimeZone class (deprecated)
- โข Naive DateTime arithmetic
๐ DateTime vs DateTimeOffset
When to Use Each Type
๐ Timezone Operations
TimeZoneInfo and Conversions
๐ Parsing and Formatting
Robust Date Parsing
โฑ๏ธ Duration and Arithmetic
Safe Date Calculations
๐๏ธ Entity Framework Integration
Database Time Handling
๐งช Testing Time Logic
Testable Time Code
๐ก JSON Serialization
API-Safe Time Serialization
โ ๏ธ Common Pitfalls
Things That Will Bite You
1. DateTime.Kind Confusion
Always specify DateTimeKind to avoid ambiguity.
2. DST Arithmetic Errors
Adding days during DST transitions can be tricky.