Java: сохранение даты из JFormattedTextField MAsk для доступа к БД - PullRequest
0 голосов
/ 03 января 2012

У меня есть пользовательское поле JFormattedText для даты, которое использует MaskFormatter __/__/____ и шаблон "dd / MM / yyyy".
Для сохранения на объекте я использую:

        try {
        SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
        String dtStr = this.dateFormatTf.getValue().toString().trim();  // 01/01/2011
        java.util.Date dt =  df.parse(dtStr);  // dt = Sun Jan 01 00:00:00 IST 2011

        bk.setTransDate(dt);  // SAVes the date as util.Date in above way as dt
    } catch(java.text.ParseException e) { 
        Utility.logs.log(Level.WARNING, "Parse Date Exception = " + e.getMessage());
        e.printStackTrace();
        return null;
    }

После сохранения вобъект, я пытаюсь сгенерировать команду вставки sql.Здесь, если я передам объект util.Date, он выдаст исключение, поскольку не может сохранить «Sun Jan 01 00:00:00 IST 2011» в поле «ДАТА / ВРЕМЯ» MS Access.Поэтому я попытался ниже получить объект sql.Date:

     long tm = bk.getTransDate().getTime();
    java.sql.Date dt = new java.sql.Date(tm);

и передать команду dt для вставки команды sql.Это сохраняет дату в MS Access, но сохранено значение «01-07-1905».

Какие изменения необходимы и где хранить данные в правильном формате от текстового поля до БД MS Access.В Access DB формат поля DATE установлен на SHORT.

Любая помощь очень важна.

1 Ответ

0 голосов
/ 06 января 2012

Спасибо всем,

Я видел проблему с датой в MS Access много раз.В основном я конвертирую его в тип данных String / Text, чтобы помочь мне правильно хранить и правильно приводить объект Date в приложении.

Что ж, на этот раз я также прекратил использовать то же решение.

...