Skip to content

ISO8601

Utility class for converting between Java time objects and ISO 8601 date strings. All methods are static.

Two formats are supported:

  • Extended: YYYY-MM-DDThh:mm:ss.SSSTZD (e.g. 2024-03-15T14:30:00.000+01:00)
  • Basic: yyyyMMddHHmmss (e.g. 20240315143000)

Description:

Method Return values Description
isExtended(String value) boolean Returns true if the string matches the extended ISO 8601 pattern YYYY-MM-DDThh:mm:ss.SSSTZD.

Example:

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

Description:

Method Return values Description
parseExtended(String value) Calendar Parses an extended ISO 8601 string (YYYY-MM-DDThh:mm:ss.SSSTZD) and returns a Calendar. Returns null for null input. Throws IllegalArgumentException if the string cannot be parsed.

Example:

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();
}
}
}

Description:

Method Return values Description
formatExtended(Calendar value) String Formats a Calendar value as an extended ISO 8601 string (YYYY-MM-DDThh:mm:ss.SSSTZD). Returns null for null input.

Example:

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

Description:

Method Return values Description
parseBasic(String value) Calendar Parses a basic ISO 8601 string in the format yyyyMMddHHmmss and returns a Calendar. Returns null for null input. Throws IllegalArgumentException if the string cannot be parsed.
  • value: A date string in yyyyMMddHHmmss format.

Example:

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();
}
}
}

Description:

Method Return values Description
formatBasic(Calendar value) String Formats a Calendar value as a basic ISO 8601 string (yyyyMMddHHmmss). Returns null for null input.

Description:

Method Return values Description
formatBasic(Date value) String Formats a Date value as a basic ISO 8601 string (yyyyMMddHHmmss).

Example:

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();
}
}
}

Description:

Method Return values Description
printBasic(String value) String Parses a basic ISO 8601 string (yyyyMMddHHmmss) and reformats it as yyyy-MM-dd for display. Returns an empty string if the input is null or empty.

Example:

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