Ir al contenido

ISO8601

Clase de utilidad para convertir entre objetos de fecha/hora de Java y cadenas de fecha ISO 8601. Todos los métodos son estáticos.

Se admiten dos formatos:

  • Extendido: YYYY-MM-DDThh:mm:ss.SSSTZD (p. ej. 2024-03-15T14:30:00.000+01:00)
  • Básico: yyyyMMddHHmmss (p. ej. 20240315143000)

Descripción:

Método Valores de retorno Descripción
isExtended(String value) boolean Devuelve true si la cadena coincide con el patrón ISO 8601 extendido YYYY-MM-DDThh:mm:ss.SSSTZD.

Ejemplo:

boolean valid = ISO8601.isExtended("2024-03-15T14:30:00.000+01:00"); // true
boolean invalid = ISO8601.isExtended("20240315143000"); // false

Descripción:

Método Valores de retorno Descripción
parseExtended(String value) Calendar Analiza una cadena ISO 8601 extendida (YYYY-MM-DDThh:mm:ss.SSSTZD) y devuelve un Calendar. Devuelve null si la entrada es nula. Lanza IllegalArgumentException si la cadena no se puede analizar.

Ejemplo:

package com.openkm;
import com.openkm.util.ISO8601;
import java.util.Calendar;
public class Test {
public static void main(String[] args) {
try {
Calendar cal = ISO8601.parseExtended("2024-03-15T14:30:00.000+01:00");
System.out.println(cal.getTime());
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
formatExtended(Calendar value) String Formatea un valor Calendar como una cadena ISO 8601 extendida (YYYY-MM-DDThh:mm:ss.SSSTZD). Devuelve null si la entrada es nula.

Ejemplo:

String iso = ISO8601.formatExtended(Calendar.getInstance());
System.out.println(iso); // "2024-03-15T14:30:00.000+01:00"

Descripción:

Método Valores de retorno Descripción
parseBasic(String value) Calendar Analiza una cadena ISO 8601 básica en formato yyyyMMddHHmmss y devuelve un Calendar. Devuelve null si la entrada es nula. Lanza IllegalArgumentException si la cadena no se puede analizar.
  • value: Una cadena de fecha en formato yyyyMMddHHmmss.

Ejemplo:

package com.openkm;
import com.openkm.util.ISO8601;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Test {
public static void main(String[] args) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar cal = ISO8601.parseBasic("20240315143000");
System.out.println(sdf.format(cal.getTime())); // "2024-03-15 14:30:00"
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
formatBasic(Calendar value) String Formatea un valor Calendar como una cadena ISO 8601 básica (yyyyMMddHHmmss). Devuelve null si la entrada es nula.

Descripción:

Método Valores de retorno Descripción
formatBasic(Date value) String Formatea un valor Date como una cadena ISO 8601 básica (yyyyMMddHHmmss).

Ejemplo:

package com.openkm;
import com.openkm.util.ISO8601;
import java.util.Calendar;
public class Test {
public static void main(String[] args) {
try {
Calendar cal = Calendar.getInstance();
System.out.println(ISO8601.formatBasic(cal)); // "20240315143000"
System.out.println(ISO8601.formatBasic(cal.getTime())); // "20240315143000"
} catch (Exception e) {
e.printStackTrace();
}
}
}

Descripción:

Método Valores de retorno Descripción
printBasic(String value) String Analiza una cadena ISO 8601 básica (yyyyMMddHHmmss) y la reformatea como yyyy-MM-dd para su visualización. Devuelve una cadena vacía si la entrada es nula o está vacía.

Ejemplo:

String display = ISO8601.printBasic("20240315143000");
System.out.println(display); // "2024-03-15"