Publicado el Dejar un comentario

Obtener la fecha actual en java con la clase Calendar.

A partir de java 7 los métodos para obtener el día, mes y año de una fecha han quedado obsoletos o en desuso y podrán desaparecer en futuras versiones.

Lo que recomiendan es el uso de la clase Calendar para obtener estos datos. Enseguida un pequeño ejemplo de cómo obtener la fecha (“AAAA-MM-DD”) con la clase Calendar de java:

...
Calendar fechaActual = Calendar.getInstance();
String cadenaFecha = String.format("%04d-%02d-%02d-%02d",
  fechaActual.get(Calendar.YEAR),
  fechaActual.get(Calendar.MONTH)+1,
  fechaActual.get(Calendar.DAY_OF_MONTH));
System.out.println(cadenaFecha);
....

Observe el +1 al obtener el mes. Calendar.MONTH regresa el número de mes pero a partir de 0, por eso la necesidad de aumentar en uno para obtener el mes correctamente.

Espero y les sea útil. ¡Saludos!

Publicado el Dejar un comentario

Could not read from … because it is a not a file. Error al ejecutar transformación de Kettle (PDI).

Utilizo el ETL Kettle de Pentaho (PDI o Pentaho Data Integration) para realizar algunas transformaciones de datos desde hace tiempo. Recientemente actualicé a la versión 5.1 de éste excelente software.

He realizado un proyecto personalizado en java donde embebo las librerías de Kettle para realizar las transformaciones que necesitan mis usuarios. Sin embargo con esta nueva versión, al ejeutar una transformación después de la otra me arrojaba el mensaje:

Could not read from …. because it is a not a file. Error al ejecutar transformación de Kettle.

Al querer cargar la definición de una transformación desde un archivo que se encontraba dentro del jar de la distribución del programa, cuando con las versiones 4 anteriores no lo enviaba.

Al parecer es un problema con la librería commons-vfs-20100924-pentaho.jar que viene con esta versión. Para solucionar el problema, sustituya dicha libería vfs que se encuentra en la carpeta lib, dentro de la carpeta de instalación de Kettle, con esta otra.

Error solucionado.

¡Saludos!