New project from FarawayTech: Zima Weather — Weather and calendar dashboard for busy professionals.
C# CSV Parse DateTime Field
In this example, we are going to parse a CSV file that contains a dates, times and datetimes using CsvHelper library. Suppose we have the following CSV to parse:
NAME,DATE,TIME,DATETIME
ES1 Index,01/01/2023,11:00,2023-01-01 11:00+01:00
...
Parsing date and time fields does not require any custom parsers, all we need is to add proper format annotations to our record data holder:
public readonly record struct CsvRecord {
[Name("NAME")]
public readonly string Name { get; init; }
[Name("DATE")]
[Format("MM/dd/yyyy")]
public DateOnly CsvDate { get; init; }
[Name("TIME")]
[Format("HH:mm")]
public TimeOnly CsvTime { get; init; }
[Name("DATETIME")]
[Format("yyyy-MM-dd HH:mm:sszzz")]
public DateTimeOffset CsvDateTime { get; init; }
}
With CsvHelper, we can use any date-like types: DateOnly
, TimeOnly
, DateTime
and DateTimeOffset
.
For a detailed list of format specifications, refer to the Microsoft documentation:
Custom date and time format strings.