Дата разбора и сохранение ее в базе данных SQLite - PullRequest
2 голосов
/ 07 мая 2011

Я анализирую xml-файл с помощью SAXParser, и внутри обработчика я создаю объекты с одной из камер данных, являющейся датой.

Дата в моем XML-файле имеет следующий формат: 2010-12-28.

Я не могу найти, как превратить такую ​​строку в объект Date.И я также не понимаю, как хранить его в базе данных SQLite, потому что, кажется, существует много форматов (с часами / минутами и т. Д.)

И мне нужно, чтобы он хранился в объекте, чтобы я мограссчитать временные рамки и т. д.

Может ли кто-нибудь помочь мне с этим?

1 Ответ

9 голосов
/ 07 мая 2011

Вы можете использовать простой формат даты в Java для форматирования даты в Date объект, который вы можете использовать для выполнения вычислений, например:

http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html

Строка синтаксического анализа, которую вы хотите "yyyy'-'MM'-'dd"

Что касается хранения в базе данных SQLite, у вас есть несколько вариантов:

  • Сохраните его как строку и преобразуйте обратно в объект даты, когда он появится
  • (предпочтительно) Сохраните его как метку времени Unix (Date.getTime() дает вам количество миллисекунд с 1970 года, и вы можете сохранить это значение в БД.) Этот способ предпочтителен, потому что вы не нужно сделать так много (относительно дорогих) конверсий. Вы можете просто выполнять основные операции со значениями long timestamp.

Есть несколько других опций, использующих встроенные в SQLite функции даты (как описано здесь ), но, в конечном счете, если вы хотите вставить его в код Android / Java и манипулировать им как Date объект, который вы собираетесь, не нужно делать преобразование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...