#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 который работает только со временем
Комментариев нет:
Отправить комментарий