все преимущества и недостатки DateTime и Stopwatch.
Звучит как "все преимущества и недостатки автомобиля и электрочайника"
Судя по тому что вы их сравниваете - видимо вы хотите измерить длительность какой-то операции.
Если нужно точно измерить короткий промежуток времени, то лучше использовать Stopwatch, тк он использует HPET
Если нужно приблизительно (с точностью до мс) померить разницу во времени между двумя событиями, например пользователю отобразить что-то типа "сообщение отправлено 5 минут назад" - лучше использовать DateTime, а лучше даже DateTimeOffset.
Если вы хотите оценить производительность кода, то лучше использовать
BenchmarkDotNet.
Вот, например, у меня есть целое число 9847748582984. Как его конвертировать в дату?
Для начала стоило бы узнать, что это число означает, но методом тыка определяем, что это ...
А нифига не определяем. Ни один из способов инициализации времени не даёт ничего адекватного.
var dt1 = new DateTime(9847748582984).Dump("dt1"); // 12.01.0001 09:32:54
var dt2 = DateTime.FromBinary(9847748582984).Dump("dt2"); // 12.01.0001 09:32:54
var dt3 = DateTime.FromFileTime(9847748582984).Dump("dt3"); // 12.01.1601 14:32:54
//var dt4 = DateTime.FromOADate(9847748582984).Dump("dt4"); // Invalid
//var dt5 = DateTimeOffset.FromUnixTimeSeconds(9847748582984).Dump("dt5"); // Out of range
var dt6 = DateTimeOffset.FromUnixTimeMilliseconds(9847748582984).Dump("dt6"); //23.01.2282 13:43:02 +00:00
Если кто знает ещё форматы времени - дополняйте
PS:
https://habr.com/ru/post/226279/