Sample code for 30+ languages & platforms
Java

Generate Monotonic ULIDs

See more ULID/UUID Examples

Generate a sequence of monotonic ULIDs all using the same seed time. This code sample generates a series of ULIDs with continuously increasing values.

Important: Chilkat's ULID functionality was introduced in v9.5.0.94.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.DateTime;
import com.chilkatsoft.chilkat2.StringBuilder;

public class ChilkatExample {

    public static void main(String[] args) {
        DateTime seedDt = new DateTime();

        // You can set the seed time to any desired value.
        // In this example, the seed time is set to the current system date/time.
        seedDt.setFromCurrentSystemTime();

        // Generate the 1st ULID in the series.
        // (i.e. the current UTC UNIX-time)
        boolean utc = true;
        String ulid = seedDt.ulidGenerate(utc);
        System.out.println(ulid);

        // Store the ULID in a Chilkat StringBuilder to generate the series.
        StringBuilder sbUlid = new StringBuilder();
        sbUlid.append(ulid);

        int i = 0;
        while (i < 50) {
            seedDt.ulidIncrement(sbUlid);
            System.out.println(sbUlid.getAsString());
            i = i + 1;
        }

        // Sample output:

        // 01GRGH30H8DMQ4F9A0XCTZHPGM
        // 01GRGH30H8DMQ4F9A0XCTZHPGN
        // 01GRGH30H8DMQ4F9A0XCTZHPGP
        // 01GRGH30H8DMQ4F9A0XCTZHPGQ
        // 01GRGH30H8DMQ4F9A0XCTZHPGR
        // 01GRGH30H8DMQ4F9A0XCTZHPGS
        // 01GRGH30H8DMQ4F9A0XCTZHPGT
        // 01GRGH30H8DMQ4F9A0XCTZHPGV
        // 01GRGH30H8DMQ4F9A0XCTZHPGW
        // 01GRGH30H8DMQ4F9A0XCTZHPGX
        // 01GRGH30H8DMQ4F9A0XCTZHPGY
        // 01GRGH30H8DMQ4F9A0XCTZHPGZ
        // 01GRGH30H8DMQ4F9A0XCTZHPH0
        // 01GRGH30H8DMQ4F9A0XCTZHPH1
        // 01GRGH30H8DMQ4F9A0XCTZHPH2
        // 01GRGH30H8DMQ4F9A0XCTZHPH3
        // 01GRGH30H8DMQ4F9A0XCTZHPH4
        // 01GRGH30H8DMQ4F9A0XCTZHPH5
        // 01GRGH30H8DMQ4F9A0XCTZHPH6
        // 01GRGH30H8DMQ4F9A0XCTZHPH7
        // 01GRGH30H8DMQ4F9A0XCTZHPH8
        // 01GRGH30H8DMQ4F9A0XCTZHPH9
        // 01GRGH30H8DMQ4F9A0XCTZHPHA
        // 01GRGH30H8DMQ4F9A0XCTZHPHB
        // 01GRGH30H8DMQ4F9A0XCTZHPHC
        // 01GRGH30H8DMQ4F9A0XCTZHPHD
        // 01GRGH30H8DMQ4F9A0XCTZHPHE
        // 01GRGH30H8DMQ4F9A0XCTZHPHF
        // 01GRGH30H8DMQ4F9A0XCTZHPHG
        // 01GRGH30H8DMQ4F9A0XCTZHPHH
        // 01GRGH30H8DMQ4F9A0XCTZHPHJ
        // 01GRGH30H8DMQ4F9A0XCTZHPHK
        // 01GRGH30H8DMQ4F9A0XCTZHPHM
        // 01GRGH30H8DMQ4F9A0XCTZHPHN
        // 01GRGH30H8DMQ4F9A0XCTZHPHP
        // 01GRGH30H8DMQ4F9A0XCTZHPHQ
        // 01GRGH30H8DMQ4F9A0XCTZHPHR
        // 01GRGH30H8DMQ4F9A0XCTZHPHS
        // 01GRGH30H8DMQ4F9A0XCTZHPHT
        // 01GRGH30H8DMQ4F9A0XCTZHPHV
        // 01GRGH30H8DMQ4F9A0XCTZHPHW
        // 01GRGH30H8DMQ4F9A0XCTZHPHX
        // 01GRGH30H8DMQ4F9A0XCTZHPHY
        // 01GRGH30H8DMQ4F9A0XCTZHPHZ
        // 01GRGH30H8DMQ4F9A0XCTZHPJ0
        // 01GRGH30H8DMQ4F9A0XCTZHPJ1
        // 01GRGH30H8DMQ4F9A0XCTZHPJ2
        // 01GRGH30H8DMQ4F9A0XCTZHPJ3
        // 01GRGH30H8DMQ4F9A0XCTZHPJ4
        // 01GRGH30H8DMQ4F9A0XCTZHPJ5
        // 01GRGH30H8DMQ4F9A0XCTZHPJ6
    }
}