I am working with a CSV file and I am trying to do something equivalent to calling new Date() and pass in some argument to customize what day month and year this argument points to like so:
new Date(2020, 0, 15);
"2020-01-15T06:00:00.000Z"
Initially, my CSV file looked like this:
'Urban Residential and Combined Industrial/Commercial',
[start:run]     '1/19/15',
[start:run]     '12/8/15',
[start:run]     '1',
[start:run]     'CIC(PD)',
[start:run]     '1/19/15',
but then I converted it in Numbers so that it shows the full year and so my code below should work in the following manner:
export const dateStringToDate = (dateString: string): Date => {
  // 12/18/2014
  const dateParts = dateString.split("/").map((value: string): number => {
    return parseInt(value);
  }); // ['12', '18', '2014']
  return new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);
};
and then importing into my CsvFileReader:
import fs from "fs";
import { dateStringToDate } from "./utils";
export class CsvFileReader {
  data: string[][] = [];
  constructor(public filename: string) {}
  read(): void {
    this.data = fs
      .readFileSync(this.filename, {
        encoding: "utf-8",
      })
      .split("\n")
      .map((row: string): string[] => {
        return row.split(",");
      })
      .map((row: string[]): any => {
        return [dateStringToDate(row[0])];
      });
  }
}
I am still getting Invalid Dates.
    [
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   [ Invalid Date ], [ Invalid Date ], [ Invalid Date ], [ Invalid Date ],
[start:run]   ... 4348 more items
[start:run] ]
 
    