在Java中重置Calendar实例的时间部分

ser*_*nni 13 java format time date reset

有Java代码,它在2个不同的环境中运行,并将记录插入JdbcTemplateDB中.

两种环境的运行结果都不同.特别是对于Date田野.

在第一个环境(Oracle XE)上,它会生成记录:

"12/03/2010";191094;"71697211000";3229;880323202;NULL;0;1;0;NULL;0;NULL
Run Code Online (Sandbox Code Playgroud)

第二环境(Oracle非XE):

"12/03/2010 12:00:00";191094;"71697211000";3229;880323202;NULL;0;1;0;NULL;0;NULL
Run Code Online (Sandbox Code Playgroud)

对于第一个环境DD-MON-RR, NLS_DATE_FORMAT(如果它是至关重要的)是第二个环境DD-MON-RRRR

问题是,Oracle设置可能会影响什么,第二个env Date格式是另一个?

ser*_*nni 27

应该在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));
Run Code Online (Sandbox Code Playgroud)

代替:

  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);
Run Code Online (Sandbox Code Playgroud)

  • 是否有可以返回0的情况? (7认同)