Your dt.Rows[i]["INVOICE_DATE"]retuns object, and when you call the method, ToStringit will call not .object.ToString() DateTime.ToString()
INVOICE_DATE DateTime datatable, object DateTime dd/MM/yyyy ( , ) , InvariantCulture.
var Invoice_date = (DateTime)dt.Rows[i]["INVOICE_DATE"]
.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
INVOICE_DATE string datatable, object.ToString, DateTime .
var Invoice_date = DateTime.ParseExact(dt.Rows[i]["INVOICE_DATE"].ToString(),
"dd-MM-yyyy hh:mm:ss tt",
CultureInfo.InvariantCulture)
.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);