У меня есть следующий код:
// Model the table
Table tbl = new TableBuilder("Transactions")
.addColumn(new ColumnBuilder("TransactionID", DataType.LONG).setAutoNumber(true))
.addColumn(new ColumnBuilder("ControllerID", DataType.LONG).setAutoNumber(false))
.addColumn(new ColumnBuilder("ReaderID", DataType.LONG).setAutoNumber(false))
.addColumn(new ColumnBuilder("Event", DataType.LONG).setAutoNumber(false))
.addColumn(new ColumnBuilder("Timestamp", DataType.SHORT_DATE_TIME).setAutoNumber(false))
.addColumn(new ColumnBuilder("Number", DataType.LONG).setAutoNumber(false))
.addIndex(new IndexBuilder(IndexBuilder.PRIMARY_KEY_NAME).addColumns("TransactionID").setPrimaryKey())
.toTable(db);
// Add the row
Map<String, Object> values = new HashMap<>();
values.put("ControllerID", cid);
values.put("ReaderID", rid);
values.put("Event", evtNum);
values.put("Timestamp", ts); // Long; must be converted to DataType.SHORT_DATE_TIME
values.put("Number", accNum);
tbl.addRowFromMap(values);
Я хочу преобразовать длинный ts
в формат даты , который MS Access понимает .Тип столбца «Метка времени» в MS Access: Date/Time
, значения отображаются в виде «ГГГГ-ММ-дд ЧЧ: мм: сс».Что мне нужно сделать, чтобы преобразовать ts
?
В этом ответе к аналогичной проблеме упоминается преобразование в double
(то, что Access использует для хранения Date/Time
поля, в соответствии с источником), но я не понимаю, что мне нужно сделать, чтобы мой код соответствовал ему:
Это также указывает на проблему независимости формата отображения и данныххранение со значениями даты Jet / ACE.Хранение как двойное, с целочисленной частью, указывающей день с 30.12.1899, и десятичной частью временную часть в течение дня.Любая введенная вами дата будет сохранена как одно число.
- Дэвид В. Фентон ;4 июля 2010
Примечание: Я знаю , как преобразовать long в java.util.Date
, установить время для java.util.Calendar
, а затем получить читабельный / анализируемый человекомотформатированная строка из него .Это не то, что я пытаюсь сделать, поэтому помечать как дубликат связанного вопроса неправильно.Я пытаюсь получить двойное значение, которое понимает MS Access.