Como converter “duplo” para “datetime” entre o Excel e c #

Eu tenho um programa c # que precisa criar um objeto do excel e fazer algumas operações, aqui estão partes do meu código:

// c# code:

workSheet.Cells[1, 1] = "=2012/9/20";       //asign "2012/9/20" to cell[1,1] in Excel
double d = workSheet.Cells[1, 1].value();   // by default, Excel will return 11.17
Debug.Print(d.ToString());                  //c#:  d = 11.1777777777778

Então, como fazer a saída se tornar "2012/9/20" novamente?

Eu tentei alguns códigos, mas falhei:

DateTime str = DateTime.FromOADate(d);     //c#: str = 1/10/1900 4:16:00 AM
DateTime str = new DateTime((long)d);      //c#: str = 1/1/0001 12:00:00 AM

questionAnswers(4)

yourAnswerToTheQuestion