¿Cómo puedo convertir una marca de tiempo Unix a DateTime y viceversa?

Existe este código de ejemplo, pero luego comienza a hablar sobre problemas de milisegundos / nanosegundos.

La misma pregunta está en MSDN,Segundos desde la época de Unix en C #.

Esto es lo que tengo hasta ahora:

public Double CreatedEpoch
{
  get
  {
    DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime();
    TimeSpan span = (this.Created.ToLocalTime() - epoch);
    return span.TotalSeconds;
  }
  set
  {
    DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime();
    this.Created = epoch.AddSeconds(value);
  }
}

Respuestas a la pregunta(16)

Su respuesta a la pregunta