Alex Sprint Ответов: 1

Как преобразовать datetime в байт[]


Я пытаюсь преобразовать объект dateTime в byte[].
DateTime dt = Convert.ToDateTime(Current_date_time);


Я попытался сохранить это значение в байтовом массиве как
arrProp = BitConverter.GetBytes(d);


но в итоге получил исключение.
Как решить эту проблему ?

Что я уже пробовал:

byte[] arrProp = null;
DateTime dt = конвертировать.Объект todatetime(objDevice.deviceRecord.Current_date_time);
arrProp = BitConverter.GetBytes(dt);

Garth J Lancaster

жаль, что вы не указали, что это за исключение ... Я бы подумал, что вам нужно было бы сделать что-то вроде

arrProp = BitConverter.GetBytes(dt.Галочки);

Alex Sprint

Да, Гарт, я пробовал использовать arrProp = BitConverter.GetBytes(dt.Галочки);
и это сработало отлично.
Спасибо за предложение :)

Garth J Lancaster

не беспокойтесь - я скопировал это в решение, так что любой другой может легко его увидеть

Alex Sprint

Как сохранить это значение в 4 байтах. На самом деле он хранится в 8 байтах. Но хранить его нужно в 4 байтах.

Garth J Lancaster

из-за разрешения тиков вы не можете хранить полную дату и время менее чем в Int64, то есть в 8 байтах

вы можете вручную кодировать "меньшее разрешение" в 4 байта, но тогда вам также понадобится ручное декодирование

Alex Sprint

Спасибо Гарт :)

1 Ответов

Рейтинг:
11

Garth J Lancaster

как прокомментировал,

arrProp = BitConverter.GetBytes(dt.Ticks);


:-)

[править] обратная операция

DateTime myDateTime = DateTime.FromBinary(BitConverter.ToInt64(arrProp, 0))


[/редактировать]


Karthik_Mahalingam

5