1

My CSV file has a field called Date. The values in this column are of type dd/mm/yyyy.

For example:

08/01/2022

At the moment I am mapping it in my CsvReader class to a string:

public class CLMExplorerHistory
{
    [Name("Date")]
    public string Date { get; set; }
}

I have tested reading my CSV file (which obviously has more columns of info):

public void Test2()
{
    string strPath = "d:\\Import CLM\\Calendar Simon.csv";

    if (!File.Exists(strPath))
        return;

    try
    {
        using (var reader = new StreamReader(strPath))
        using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
        {
            var records = csv.GetRecords<CLMExplorerHistory>();

            foreach (var record in records)
            {
                SimpleLog.Log(record.Date);
            }
        }
    }
    catch (System.Exception ex)
    {
        SimpleLog.Log(ex);
    }
}

I examined the log and all is good:

<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>01/03/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>08/03/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>15/03/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>22/03/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>29/03/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>05/04/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>12/04/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>19/04/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>26/04/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>03/05/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>10/05/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>17/05/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>24/05/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>31/05/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>07/06/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>14/06/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>21/06/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>28/06/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>05/07/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>12/07/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>19/07/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>26/07/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>02/08/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>09/08/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>16/08/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>23/08/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>30/08/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>06/09/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>13/09/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>20/09/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>27/09/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>04/10/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>11/10/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>18/10/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>25/10/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>01/11/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>08/11/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>15/11/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>22/11/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>29/11/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>06/12/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>13/12/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>20/12/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>27/12/2021</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>03/01/2022</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>10/01/2022</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>17/01/2022</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>24/01/2022</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>31/01/2022</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>07/02/2022</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>14/02/2022</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>21/02/2022</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>28/02/2022</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>07/03/2022</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>14/03/2022</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>21/03/2022</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>28/03/2022</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>04/04/2022</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>18/04/2022</Message>
</LogEntry>
<LogEntry Date="2022-01-08 20:02:08" Severity="Info" Source="MSAToolsLibrary.MSAToolsLibraryClass.Test2" ThreadId="1">
  <Message>25/04/2022</Message>
</LogEntry>

What attribute can I add to my property so that it can be a DateTime object? I don't want to use a map but an attribute qualifier.

Andrew Truckle
  • 17,769
  • 16
  • 66
  • 164

1 Answers1

1

Fairly sure it's

[Format("dd/MM/yyyy")]
[Name("Date")]
public DateTime Date { get; set; }

..but do let me know if my memory has failed me and this is complete nonsense

Technically, the Name attribute is unnecessary if the prop is named the same but I'm sure that giving the property a more descriptive name is high on the todo list so I left it in to make that easier

Caius Jard
  • 72,509
  • 5
  • 49
  • 80