Вставить отметку времени в базу данных через ContentValues

Возможно, вам легче понять, если вы думаете о базовом представлении (хотя это действительно детализация реализации). Вот набор строк:

IEnumerable<string> strings = new[] { "A", "B", "C" };

Вы можете думать о том, что strings имеет следующее представление:

[0] : string reference -> "A"
[1] : string reference -> "B"
[2] : string reference -> "C"

Это набор из трех элементов, каждый являясь ссылкой на строку. Вы можете передать это в коллекцию объектов:

IEnumerable<object> objects = (IEnumerable<object>) strings;

В основном это то же представление, за исключением того, что ссылки являются ссылками на объекты:

[0] : object reference -> "A"
[1] : object reference -> "B"
[2] : object reference -> "C"

Представление такое же. Ссылки рассматриваются только по-разному; вы больше не можете получить доступ к свойству string.Length, но вы все равно можете вызвать object.GetHashCode(). Сравните это с коллекцией ints:

IEnumerable<int> ints = new[] { 1, 2, 3 };
[0] : int = 1
[1] : int = 2
[2] : int = 3

Чтобы преобразовать это в IEnumerable<object>, данные должны быть преобразованы путем бокса ints:

[0] : object reference -> 1
[1] : object reference -> 2
[2] : object reference -> 3

Это преобразование требует больше, чем литье.

11
задан Razor 16 October 2016 в 06:05
поделиться

1 ответ

Ни Date , ни Calendar не являются допустимыми элементами для добавления в ContentValues ​​. Я считаю, что наиболее эффективным форматом является преобразование Date в миллисекунды ( getTime () ) и сохранение его в столбце INTEGER .

15
ответ дан 3 December 2019 в 08:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: