Sample code for 30+ languages & platforms
DataFlex

Generate ULID

See more ULID/UUID Examples

Generate a ULID using a specified timestamp or the current system date timestamp.

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

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoDt
    Boolean iSuccess
    Boolean iUtc
    String sUlid
    Handle hoDt2

    Get Create (RefClass(cComCkDateTime)) To hoDt
    If (Not(IsComObjectCreated(hoDt))) Begin
        Send CreateComObject of hoDt
    End

    // Set dt to the current system date/time.
    Get ComSetFromCurrentSystemTime Of hoDt To iSuccess

    // Generate a ULID for the current UTC date/time.
    // (i.e. the current UTC UNIX-time)
    Move True To iUtc
    Get ComUlidGenerate Of hoDt iUtc To sUlid
    Showln sUlid

    // example result: 01GRGCH4J88RECEN4D4VK4F629

    // Generate a ULID using the local timezone's current time.
    Move False To iUtc
    Get ComUlidGenerate Of hoDt iUtc To sUlid
    Showln sUlid

    // example result: 01GRH14AA82EY9A7S99YYF2QDY

    // -----------------------------------------------
    // To generate a ULID using a specific UNIX timestamp

    // For example, the Unix timestamp for Sun, 05 Feb 2023 14:57:46 GMT
    // is 1675609066

    // For more information about the Epoch Unix Timestamp, see Epoch Unix Timestamp

    // To generate a ULID from a specified date/time, set the CkDateTime and then generate the ULID.
    Get Create (RefClass(cComCkDateTime)) To hoDt2
    If (Not(IsComObjectCreated(hoDt2))) Begin
        Send CreateComObject of hoDt2
    End
    Move True To iUtc
    Get ComSetFromUnixTime Of hoDt2 iUtc 1675609066 To iSuccess
    Get ComUlidGenerate Of hoDt2 iUtc To sUlid
    Showln sUlid

    // example result: 01GRH1AJGG3P5K04DJHN3QJCX3


End_Procedure