Hay código de Java,que se corrió en 2 diferentes entornos y los inserta registros con JdbcTemplate a DB.

Resultados de su ejecución son diferentes, tanto para el envs. En particular,para Date campos.

En primer entorno(Oracle XE) no se produce de registro:

"12/03/2010";191094;"71697211000";3229;880323202;NULL;0;1;0;NULL;0;NULL

Segundo entorno(Oracle no XE):

"12/03/2010 12:00:00";191094;"71697211000";3229;880323202;NULL;0;1;0;NULL;0;NULL

NLS_DATE_FORMAT(si es crucial) para el primer env DD-MON-RR,
para el segundo env DD-MON-RRRR

La pregunta es, ¿qué configuración de Oracle puede afectar,que por segunda env formato de Fecha es otro?

Simplemente no almacenar/recuperar la parte del tiempo en DB. El uso de un DATE tipo de campo, no TIMESTAMP o DATETIME.
Yo uso la Fecha de tipo de campo en la DB. Parece, que he misunderstadings con el cliente. Dijo,que a las 12:00 no debe ser incluido.Pero no aparece con sólo seleccionar.se muestra,cuando yo utilice SELECT to_char(a_date, ‘DD-mm-aa HH:MI:SS’)

OriginalEl autor sergionni | 2010-12-06

5 Comentarios

  1. 27

    deben establecer el siguiente Calendario de propiedades en código Java:

      Calendar cal = Calendar.getInstance();
      cal.set(Calendar.HOUR_OF_DAY, cal.getActualMinimum(Calendar.HOUR_OF_DAY));
      cal.set(Calendar.MINUTE, cal.getActualMinimum(Calendar.MINUTE));
      cal.set(Calendar.SECOND, cal.getActualMinimum(Calendar.SECOND));
      cal.set(Calendar.MILLISECOND, cal.getActualMinimum(Calendar.MILLISECOND));

    lugar de:

      Calendar cal = Calendar.getInstance();
      cal.set(Calendar.HOUR_OF_DAY, 0);
      cal.set(Calendar.MINUTE, 0);
      cal.set(Calendar.SECOND, 0);
      cal.set(Calendar.MILLISECOND, 0);
    Es la situación cuando se puede volver no 0 ?
    getActualMinimum puede devolver valores distintos de 0, pero no para la lista por encima de los campos.

    OriginalEl autor sergionni

  2. 4

    Según la documentación, HH se refiere a un tiempo de 12 horas. El 12 en el tiempo de recuperación es de 12 de la medianoche. Lo que quiero es que HH24, que ges un tiempo de 24 horas, a partir de las 00 de la medianoche.

    OriginalEl autor Kevin Lacquement

  3. 3

    Si usted no desea mostrar la parte del tiempo, no se incluye una cadena de formato que incluye la parte de tiempo («HH:MI:SS»).

    Haya restablecido el momento en que la parte a la medianoche, básicamente… no hay manera de diferenciar entre un Calendar o Date fijado exactamente en la medianoche y un Calendar o Date «sin» a tiempo parcial porque no existe tal concepto como una Calendar/Date con sólo una parte de la fecha.

    Ahora usted puede ser capaz de que en la base de datos, dependiendo de lo que los tipos que están disponibles para usted – pero java.util.Date y java.util.Calendar siempre representan puntos en el tiempo, no solamente las fechas.

    La razón por la que es muestra de 12 en lugar de 00 es porque estás usando «HH» en lugar de «HH24», como por lacqui la respuesta. Supongo que realmente no quiere para ver el tiempo a todos aunque, teniendo en cuenta que usted va a tener que reiniciar a la medianoche…

    Jon, así que de todos modos hace 12:00:00 en mycase significa que parte del tiempo resetted?
    Sí, es que demuestra que usted ha establecido para la medianoche. Si usted cambia su c.set llamadas a utilizar valores diferentes, podrás ver los valores apropiados en su versión con formato demasiado.
    acabo de real script de init fro de esta mesa y este campo se ve como:a_date FECHA «DD/MM/YYYY HH24:MI:SS» NULLIF (a_date=»NULL»).
    es suficiente para modificar este script de inicio en mi caso?
    No tenemos idea de lo que estamos tratando de lograr, por lo que es difícil de decir.

    OriginalEl autor Jon Skeet

  4. 2

    Yo te recomiendo extender una de las clases de Calendario como este:

    public class CalendarDateOnly extends GregorianCalendar {
    
        public static Calendar getInstance() {
            Calendar cal = Calendar.getInstance();
            cal.set(Calendar.HOUR_OF_DAY, cal.getActualMinimum(Calendar.HOUR_OF_DAY));
            cal.set(Calendar.MINUTE,      cal.getActualMinimum(Calendar.MINUTE));
            cal.set(Calendar.SECOND,      cal.getActualMinimum(Calendar.SECOND));
            cal.set(Calendar.MILLISECOND, cal.getActualMinimum(Calendar.MILLISECOND));
            return cal;
        }
    }

    Crear una instancia de esta manera:

    Calendar june30 = CalendarDateOnly.getInstance();
    june30.set(2000, Calendar.JUNE, 30);
    se ve bien,gracias por la sugerencia

    OriginalEl autor Domenic D.

  5. 1
    /*
     * Date : 2015-07-09
     * Author : Bhuwan Prasad Upadhyay
     */
    package com.developerbhuwan.date.utils;
    
    import java.util.Calendar;
    import java.util.Date;
    
    /**
     *
     * @author developerbhuwan
     */
    public class CalenderUtils {
    
        public static Calendar getNewCalendarInstance() {
            Calendar calendar = Calendar.getInstance();
            return resetCalender(calendar);
        }
    
        public static Date resetDate(Date date) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            return resetCalender(calendar).getTime();
        }
    
        public static Calendar resetCalender(Calendar calendar) {
            calendar.set(Calendar.HOUR_OF_DAY, 0);
            calendar.set(Calendar.MINUTE, 0);
            calendar.set(Calendar.SECOND, 0);
            calendar.set(Calendar.MILLISECOND, 0);
            return calendar;
        }
    
        public static void setTimeInCalendar(Calendar calendar, Date date) {
            calendar.setTime(resetDate(date));
        }
    
    }

    OriginalEl autor developerbhuwan

Dejar respuesta

Please enter your comment!
Please enter your name here