DateTime
in .NET is initialized to 0001-01-01 00:00:00
and then you add your TimeSpan
, which seems to be 45 Years.
It is common for such (milli)-second time definitions to start at 1970-01-01 00:00:00
, so maybe the following gives you the expected result:
double ticks = double.Parse(startdatetime);
TimeSpan time = TimeSpan.FromMilliseconds(ticks);
DateTime startdate = new DateTime(1970, 1, 1) + time;
or simply
var date = (new DateTime(1970, 1, 1)).AddMilliseconds(double.Parse(startdatetime));