Timestamp to byte[] - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! Случилась необходимость посчитать количество секунд с 1 января 1970 года и записать это в 4-х байтный массив:
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
DateTime now = DateTime.Now.ToUniversalTime();
int timestamp = (int)now.Subtract(epoch).TotalSeconds;
byte[] counter = new byte[4];
counter = BitConverter.GetBytes(timestamp);
После необходимо произвести обратную операцию, но каждый раз получаю разные значения: Чт 5. ноя 01:35:15 1992 Сб 9. май 23:52:51 2043 и т.д. В этом участке не совсем разбираюсь. Подскажите, пожалуйста.
Обратно дата обрабатывается вот этой функцией(рабочей на других участках):
private DateTime ReadDateTime(Stream data)
        {
            byte[] buffer = ReadBytes(data, 4);
            long sec = ((long)(buffer[0]) << 24) + ((long)(buffer[1]) << 16) + ((long)(buffer[2]) << 8) + ((long)(buffer[3]) << 0);
            
            return new DateTime(1970, 1, 1).AddSeconds(sec);
        }

Решение задачи: «Timestamp to byte[]»

textual
Листинг программы
counter = counter.Reverse();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5