Jak przekonwertować „podwójne” na „datetime” między Excelem a c #

Mam program c #, który musi utworzyć obiekt Excela i wykonać pewne operacje. Oto części mojego kodu:

// 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

więc jak sprawić, by wyjście stało się ponownie „2012/9/20”?

Próbowałem kilku kodów, ale nie:

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