Timestamp to byte[] - C#
Формулировка задачи:
Добрый день!
Случилась необходимость посчитать количество секунд с 1 января 1970 года и записать это в 4-х байтный массив:
После необходимо произвести обратную операцию, но каждый раз получаю разные значения:
Чт 5. ноя 01:35:15 1992
Сб 9. май 23:52:51 2043
и т.д.
В этом участке не совсем разбираюсь. Подскажите, пожалуйста.
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);
Обратно дата обрабатывается вот этой функцией(рабочей на других участках):
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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д