Страницы

Поиск по вопросам

воскресенье, 22 декабря 2019 г.

c# TimeSpan преобразование

#c_sharp #datetime


Уважаемые товарищи знатоки, в каком виде лучше работать со временем в программах?
DateTime или TimeSpan? Раньше в php использовал timestamp с преобразованием в дату
время, а тут как то сложновато с этим, поэтому возникли сомнения, может не стоит timestamp
лишних усилий? Если стоит, то как легче всего конвертировать его в дату-время?
    


Ответы

Ответ 1



Timestamp в PHP - это UNIX формат времени, насколько я помню PHP. Этот формат очень удобен в каких то моментах. Для .NET ниже, чем 4.6 - только вручную: // Конвертация в UNIX время var unixTime = (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds; // Конвертация в TimeSpan var timeSpan = TimeSpan.FromSeconds(unixTime); // Конвертация в DateTime var dateTime = (new DateTime(1970, 1, 1, 0, 0, 0, 0)).AddSeconds(unixTime); Для .NET 4.6 уже добавили готовый вариант: // Конвертация в UNIX время var unixTime = DateTimeOffset.Now.ToUnixTimeSeconds(); // Конвертация в DateTime var dateTime = DateTimeOffset.FromUnixTimeSeconds(unixTime).DateTime; Документация: DateTime TimeSpan DateTimeOffset DateTimeOffset.ToUnixTimeSeconds DateTimeOffset.FromUnixTimeSeconds

Ответ 2



Смотрите TimeSpan (если вы имеете ввиду это) хранит только время поэтому с ним очень удобно работать но только со временем. А с DateTime удобно работать и со временем и с датой (но если вам надо только дата то надо хитро отсоединять от времени, так как нет больше хранение для даты) К примеру так: Console.WriteLine("{0:hh mm ss}", DateTime.Now); также и можно отделить и время, но это будет уже глупо, так как у нас есть TimeSpan который работает только со временем

Комментариев нет:

Отправить комментарий