Страницы

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

четверг, 15 ноября 2018 г.

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

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


Ответ

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

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

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