This is the case if you are using the SaveAs from the Excel menu but not when using VBA. Changing the regional setting has no effect to VBA flipping date to American format. But adding the below statement fixed it for me as suggested above.
ws.Columns("B:B").NumberFormat = "dd/mm/yyyy"