FormatUtil
Clase de utilidad con métodos auxiliares estáticos para formatear tamaños, fechas, intervalos de tiempo y cadenas; sanear y escapar HTML; y validar tipos de datos comunes. Todos los métodos son estáticos.
Formateo de tamaños
Sección titulada «Formateo de tamaños»formatSize
Sección titulada «formatSize»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| formatSize(long bytes) | String | Formatea un número de bytes como una cadena de tamaño legible (p. ej. 1.5 MB). Unidades: B, KB, MB, GB, TB, PB, EB. |
- bytes: El tamaño en bytes.
Ejemplo:
package com.openkm;
import java.io.File;import com.openkm.util.FormatUtil;
public class Test {
public static void main(String[] args) { try { File file = new File("/home/openkm/test.png"); System.out.println(FormatUtil.formatSize(file.length())); // e.g. "2.3 MB" } catch (Exception e) { e.printStackTrace(); } }}parseSize
Sección titulada «parseSize»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| parseSize(String text) | long | Analiza una cadena de tamaño legible (p. ej. "10MB", "2GB") y la convierte a bytes. Admite los sufijos KB, MB, GB. |
- text: La cadena de tamaño a analizar.
Ejemplo:
long bytes = FormatUtil.parseSize("10MB");System.out.println(bytes); // 10485760Formateo de fechas
Sección titulada «Formateo de fechas»formatDate (Calendar)
Sección titulada «formatDate (Calendar)»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| formatDate(Calendar cal) | String | Formatea un valor Calendar como dd-MM-yyyy HH:mm:ss en la zona horaria propia del calendario. Devuelve null si cal es nulo. |
Ejemplo:
import java.util.Calendar;import com.openkm.util.FormatUtil;
System.out.println(FormatUtil.formatDate(Calendar.getInstance())); // "15-03-2024 14:30:00"formatDate (Date)
Sección titulada «formatDate (Date)»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| formatDate(Date date) | String | Formatea un valor Date como dd-MM-yyyy HH:mm:ss. |
formatDate (Unix epoch)
Sección titulada «formatDate (Unix epoch)»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| formatDate(long unixEpoch) | String | Formatea un valor Unix epoch (milisegundos desde el 1970-01-01) como dd-MM-yyyy HH:mm:ss. |
Ejemplo:
System.out.println(FormatUtil.formatDate(System.currentTimeMillis())); // "15-03-2024 14:30:00"Formateo de intervalos de tiempo
Sección titulada «Formateo de intervalos de tiempo»formatSeconds
Sección titulada «formatSeconds»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| formatSeconds(long time) | String | Formatea una duración en milisegundos como HH:MM:SS. |
formatSecondsSince
Sección titulada «formatSecondsSince»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| formatSecondsSince(long time) | String | Formatea el tiempo transcurrido desde la marca de tiempo inicial indicada (en milisegundos) como HH:MM:SS. Pase el resultado de System.currentTimeMillis() al comienzo de la operación. |
formatMilliSeconds
Sección titulada «formatMilliSeconds»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| formatMilliSeconds(long time) | String | Formatea una duración en milisegundos como HH:MM:SS.mmm. |
formatMilliSecondsSince
Sección titulada «formatMilliSecondsSince»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| formatMilliSecondsSince(long time) | String | Formatea el tiempo transcurrido desde la marca de tiempo inicial indicada (en milisegundos) como HH:MM:SS.mmm. Pase el resultado de System.currentTimeMillis() al comienzo de la operación. |
Ejemplo:
long start = System.currentTimeMillis();// ... long operation ...System.out.println("Elapsed: " + FormatUtil.formatMilliSecondsSince(start)); // "00:00:01.234"Formateo de cadenas
Sección titulada «Formateo de cadenas»formatArray
Sección titulada «formatArray»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| formatArray(String[] values) | String | Convierte un array de cadenas en una cadena legible. Para arrays de un solo elemento, devuelve directamente ese elemento; para arrays de varios elementos, devuelve la representación de ArrayUtils.toString de Apache Commons. Devuelve null si la entrada es nula. |
formatObject
Sección titulada «formatObject»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| formatObject(Object value) | String | Convierte un objeto en una cadena. Para Object[] usa ArrayUtils.toString; en caso contrario, llama a toString(). Devuelve null si la entrada es nula. |
Saneamiento de HTML y entradas
Sección titulada «Saneamiento de HTML y entradas»escapeHtml
Sección titulada «escapeHtml»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| escapeHtml(String str) | String | Escapa < y > como entidades HTML, y convierte los saltos de línea en <br/>. Devuelve null si la entrada es nula. |
sanitizeInput
Sección titulada «sanitizeInput»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| sanitizeInput(String string) | String | Sanea una cadena HTML para eliminar contenido potencialmente peligroso (XSS). Usa la librería AntiSamy o un método heredado basado en expresiones regulares, según la configuración Config.SECURITY_INPUT_SANITIZER. Devuelve null si la entrada es nula. |
cleanXSS
Sección titulada «cleanXSS»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| cleanXSS(String value) | String | Limpia una cadena escapando los ángulos y paréntesis HTML, eliminando expresiones eval() y JavaScript en línea, y eliminando la palabra clave script. |
sanitizeEmailString
Sección titulada «sanitizeEmailString»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| sanitizeEmailString(String value) | String | Elimina de la cadena indicada cualquier carácter que no sea letra, dígito, puntuación o espacio. Útil para sanear cadenas de direcciones de correo. |
Ejemplo:
String safe = FormatUtil.escapeHtml("<b>Hello</b>\nWorld");// "<b>Hello</b><br/>World"
String sanitized = FormatUtil.sanitizeInput("<script>alert('xss')</script>Hello");System.out.println(sanitized); // "Hello"Validación de cadenas y codificación
Sección titulada «Validación de cadenas y codificación»isValidUUID
Sección titulada «isValidUUID»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| isValidUUID(String str) | boolean | Devuelve true si la cadena indicada es un UUID válido. |
Ejemplo:
boolean valid = FormatUtil.isValidUUID("d50133e3-dbfa-4d01-a109-28785cd48f40"); // trueboolean invalid = FormatUtil.isValidUUID("not-a-uuid"); // falsevalidUTF8
Sección titulada «validUTF8»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| validUTF8(byte[] input) | boolean | Devuelve true si el array de bytes indicado es una secuencia UTF-8 válida. |
fixUTF8 (byte array)
Sección titulada «fixUTF8 (byte array)»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| fixUTF8(byte[] input) | byte[] | Sustituye los bytes nulos (0x00) por espacios (0x20) en un array de bytes. |
fixUTF8 (String)
Sección titulada «fixUTF8 (String)»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| fixUTF8(String input) | String | Sustituye los caracteres Unicode nulos ( |