---
product: Chilkat
product_version: 11.7.0
language: pascal
language_label: Lazarus Pascal
class: CkDateTime
license: free
deprecated: false
reference_html: https://www.chilkatsoft.com/refdoc/pascal_CkDateTimeRef.html
---
# Chilkat CkDateTime — Lazarus Pascal — v11.7.0

> Chilkat 11.7.0 · language=pascal · class=CkDateTime
> Other versions: replace `11.7.0` in this URL. Other languages: `https://www.chilkatsoft.com/ai-docs/v/11.7.0/<lang>/classes/CkDateTime.md`.
> Language-wide rules (install, unlock, error model, strings/bytes): `https://www.chilkatsoft.com/ai-docs/v/11.7.0/pascal/guide.md`.

## Purpose

`CkDateTime` represents a date/time value and provides conversion methods for common date/time formats, including .NET DateTime, DateTime ticks, RFC 822, RFC 3339 / ISO 8601-style timestamps, Unix time, DOS date/time, OLE DATE, NTP time, ULID timestamps, and Chilkat DtObj. It also supports date arithmetic, age/expiration checks, serialization, and local/UTC conversion.

For an extended overview, see [CkDateTime Class Overview](https://www.chilkatsoft.com/ckdatetime_class_overview.asp)

## Object creation, unlocking and error handling

**Create / Free**

```pascal
uses
  Chilkat.CkDateTime;

var
  obj: TCkDateTime;
begin
  obj := TCkDateTime.Create;
  try
    if not obj.IsValid then
      raise Exception.Create('Failed to create a TCkDateTime instance.');

    // ... use obj ...

  finally
    obj.Free;
  end;
end;
```

`constructor Create;`

Allocates the underlying CkDateTime object and returns a new TCkDateTime instance. Simply adding **Chilkat.CkDateTime** to the unit's `uses` clause is enough to locate and bind to the Chilkat shared library (DLL / .so / .dylib) at runtime — no separate load step is required. Check `obj.IsValid` after calling `Create`; it is `False` if the underlying library could not be found/loaded or the object could not be allocated (for example, when unlicensed).

`destructor Destroy; override;`

Every TCkDateTime created by calling `Create` should eventually be released by calling `.Free` (inherited from `TObject`). The destructor automatically disposes the underlying CkDateTime handle. A native (unmanaged) memory leak occurs if the object is never freed.

Call `Global.UnlockBundle` once at the start of the program, before using this or any other Chilkat class. Any string unlocks a fully functional 30-day trial; a purchased unlock code is used in production. See `guide.md` for the exact code in Lazarus Pascal.

## Members common to every Chilkat class

Documented once per language in `common-members.md`; listed here so this page is self-contained.

| Property | Signature | Access | Meaning |
|---|---|---|---|
| `DebugLogFilePath` | `property DebugLogFilePath: string read GetDebugLogFilePath write SetDebugLogFilePath;` | read/write | If set to a file path, this property logs the LastErrorText of each Chilkat method or property call to the specified file. |
| `LastErrorHtml` | `property LastErrorHtml: string read GetLastErrorHtml;` | read-only | Provides HTML-formatted information about the last called method or property. |
| `LastErrorText` | `property LastErrorText: string read GetLastErrorText;` | read-only | Provides plain text information about the last called method or property. |
| `LastErrorXml` | `property LastErrorXml: string read GetLastErrorXml;` | read-only | Provides XML-formatted information about the last called method or property. |
| `LastMethodSuccess` | `property LastMethodSuccess: Boolean read GetLastMethodSuccess write SetLastMethodSuccess;` | read/write | Indicates the success or failure of the most recent method call: `True` means success, `False` means failure. |
| `VerboseLogging` | `property VerboseLogging: Boolean read GetVerboseLogging write SetVerboseLogging;` | read/write | If set to `True`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. |
| `Version` | `property Version: string read GetVersion;` | read-only | Version of the component/library, such as "10.1.0" |

## Member index

| Member | Kind | Signature |
|---|---|---|
| `IsDst` | property, read-only | `property IsDst: Integer read GetIsDst;` |
| `UtcOffset` | property, read-only | `property UtcOffset: Integer read GetUtcOffset;` |
| `AddDays` | method | `function AddDays(numDays: Integer): Boolean;` |
| `AddSeconds` | method | `function AddSeconds(numSeconds: Integer): Boolean;` |
| `DeSerialize` | method | `procedure DeSerialize(const serializedDateTime: string);` |
| `DiffSeconds` | method | `// dateTimeArg is a TCkDateTime object. function DiffSeconds(dateTimeArg: TChilkatBase): Integer;` |
| `ExpiresWithin` | method | `function ExpiresWithin(n: Integer;     const units: string): Boolean;` |
| `GetAsDateTimeTicks` | method | `function GetAsDateTimeTicks(bLocal: Boolean): Int64;` |
| `GetAsDosDate` | method | `function GetAsDosDate(bLocal: Boolean): LongWord;` |
| `GetAsIso8601` | method | `function GetAsIso8601(const formatStr: string;     bLocal: Boolean): string;` |
| `GetAsOleDate` | method | `function GetAsOleDate(bLocal: Boolean): Double;` |
| `GetAsRfc822` | method | `function GetAsRfc822(bLocal: Boolean): string;` |
| `GetAsTimestamp` | method | `function GetAsTimestamp(bLocal: Boolean): string;` |
| `GetAsUnixTime` | method | `function GetAsUnixTime(bLocal: Boolean): LongWord;` |
| `GetAsUnixTime64` | method | `function GetAsUnixTime64(bLocal: Boolean): Int64;` |
| `GetAsUnixTimeDbl` | method | `function GetAsUnixTimeDbl(bLocal: Boolean): Double;` |
| `GetAsUnixTimeStr` | method | `function GetAsUnixTimeStr(bLocal: Boolean): string;` |
| `LoadTaskResult` | method | `// task is a TTask object. function LoadTaskResult(task: TChilkatBase): Boolean;` |
| `OlderThan` | method | `function OlderThan(n: Integer;     const units: string): Boolean;` |
| `Serialize` | method | `function Serialize: string;` |
| `SetFromCurrentSystemTime` | method | `function SetFromCurrentSystemTime: Boolean;` |
| `SetFromDateTimeTicks` | method | `function SetFromDateTimeTicks(bLocal: Boolean;     ticks: Int64): Boolean;` |
| `SetFromDosDate` | method | `function SetFromDosDate(bLocal: Boolean;     t: LongWord): Boolean;` |
| `SetFromDtObj` | method | `// dt is a TDtObj object. function SetFromDtObj(dt: TChilkatBase): Boolean;` |
| `SetFromNtpServer` | method | `function SetFromNtpServer(const jsonStr: string): Boolean;` |
| `SetFromNtpTime` | method | `function SetFromNtpTime(ntpSeconds: Integer): Boolean;` |
| `SetFromOleDate` | method | `function SetFromOleDate(bLocal: Boolean;     dt: Double): Boolean;` |
| `SetFromRfc822` | method | `function SetFromRfc822(const rfc822Str: string): Boolean;` |
| `SetFromTimestamp` | method | `function SetFromTimestamp(const timestamp: string): Boolean;` |
| `SetFromUlid` | method | `function SetFromUlid(bLocal: Boolean;     const ulid: string): Boolean;` |
| `SetFromUnixTime` | method | `function SetFromUnixTime(bLocal: Boolean;     t: LongWord): Boolean;` |
| `SetFromUnixTime64` | method | `function SetFromUnixTime64(bLocal: Boolean;     t: Int64): Boolean;` |
| `SetFromUnixTimeDbl` | method | `function SetFromUnixTimeDbl(bLocal: Boolean;     d: Double): Boolean;` |
| `ToDtObj` | method | `// dtObj is a TDtObj object. procedure ToDtObj(bLocal: Boolean;     dtObj: TChilkatBase);` |
| `UlidGenerate` | method | `function UlidGenerate(bLocal: Boolean): string;` |
| `UlidIncrement` | method | `// ulid is a TStringBuilder object. function UlidIncrement(ulid: TChilkatBase): Boolean;` |
| `UlidValidate` | method | `function UlidValidate(const ulid: string): Boolean;` |

## Properties

### CkDateTime.IsDst

`Chilkat 11.7.0 · pascal · CkDateTime · IsDst · property · read-only`

```pascal
property IsDst: Integer read GetIsDst;
```

This is the Daylight Saving Time flag. It can have one of three possible values: 1, 0, or -1. It has the value 1 if Daylight Saving Time is in effect, 0 if Daylight Saving Time is not in effect, and -1 if the information is not available.

Note: This is NOT the DST for the current system time. It is the DST that was in effect at the date value contained in this object.

### CkDateTime.UtcOffset

`Chilkat 11.7.0 · pascal · CkDateTime · UtcOffset · property · read-only`

```pascal
property UtcOffset: Integer read GetUtcOffset;
```

For the current system's timezone, returns the number of seconds offset from UTC for this date/time. The offset includes daylight savings adjustment. Local timezones west of UTC return a negative offset.

## Methods

### CkDateTime.AddDays

`Chilkat 11.7.0 · pascal · CkDateTime · AddDays · method`

```pascal
function  AddDays(numDays: Integer): Boolean;
```

Adds an integer number of days to the date/time. To subtract days, pass a negative integer.

Returns True for success, False for failure.

### CkDateTime.AddSeconds

`Chilkat 11.7.0 · pascal · CkDateTime · AddSeconds · method · since 9.5.0.65`

```pascal
function  AddSeconds(numSeconds: Integer): Boolean;
```

Adds an integer number of seconds to the date/time. To subtract seconds, pass a negative integer.

Returns True for success, False for failure.

### CkDateTime.DeSerialize

`Chilkat 11.7.0 · pascal · CkDateTime · DeSerialize · method`

```pascal
procedure DeSerialize(const serializedDateTime: string);
```

Loads the date/time with a string having the format as produced by the Serialize method, which is a string of SPACE separated integers containing (in this order) year, month, day, hour, minutes, seconds, and a UTC flag having the value of 1/0.

### CkDateTime.DiffSeconds

`Chilkat 11.7.0 · pascal · CkDateTime · DiffSeconds · method · since 9.5.0.65`

```pascal
// dateTimeArg is a TCkDateTime object.

function  DiffSeconds(dateTimeArg: TChilkatBase): Integer;
```

Returns the difference in seconds between the `dateTimeArg` and this date/time. The value returned is this object's date/time - `dateTimeArg`'s date/time. For example, if the returned value is positive, then this object's date/time is more recent than `dateTimeArg`'s date/time. If the return value is negative, then this object's date/time is older than `dateTimeArg`'s date/time.

### CkDateTime.ExpiresWithin

`Chilkat 11.7.0 · pascal · CkDateTime · ExpiresWithin · method · since 9.5.0.67`

```pascal
function  ExpiresWithin(n: Integer;
    const units: string): Boolean;
```

Returns `True` if the date/time is within `n` seconds/minutes/hours/days of the current system date/time. Otherwise returns `False`. The `units` can be `seconds`, `minutes`, `hours`, or `days` (plural or singular).

### CkDateTime.GetAsDateTimeTicks

`Chilkat 11.7.0 · pascal · CkDateTime · GetAsDateTimeTicks · method`

```pascal
function  GetAsDateTimeTicks(bLocal: Boolean): Int64;
```

Returns the date/time as a 64-bit integer .NET DateTime value.

`bLocal` indicates whether a local or UTC time is returned.

This is a date and time expressed in the number of 100-nanosecond intervals that have elapsed since January 1, 0001 at 00:00:00.000 in the Gregorian calendar.

The DateTime value type represents dates and times with values ranging from 12:00:00 midnight, January 1, 0001 Anno Domini (Common Era) through 11:59:59 P.M., December 31, 9999 A.D. (C.E.).

Time values are measured in 100-nanosecond units called ticks, and a particular date is the number of ticks since 12:00 midnight, January 1, 0001 A.D. (C.E.) in the GregorianCalendar calendar (excluding ticks that would be added by leap seconds). For example, a ticks value of 31241376000000000L represents the date, Friday, January 01, 0100 12:00:00 midnight. A DateTime value is always expressed in the context of an explicit or default calendar.

### CkDateTime.GetAsDosDate

`Chilkat 11.7.0 · pascal · CkDateTime · GetAsDosDate · method`

```pascal
function  GetAsDosDate(bLocal: Boolean): LongWord;
```

Returns the date/time as a 32-bit DOS date/time bitmask.

`bLocal` indicates whether a local or UTC time is returned.

The DOS date/time format is a bitmask:

```

			   24                16                 8                 0
	    +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
	    |Y|Y|Y|Y|Y|Y|Y|M| |M|M|M|D|D|D|D|D| |h|h|h|h|h|m|m|m| |m|m|m|s|s|s|s|s|
	    +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
	     \___________/\________/\_________/ \________/\____________/\_________/
		 year        month       day      hour       minute        second
```

The year is stored as an offset from 1980. Seconds are stored in two-second increments. (So if the `second` value is 15, it actually represents 30 seconds.)

### CkDateTime.GetAsIso8601

`Chilkat 11.7.0 · pascal · CkDateTime · GetAsIso8601 · method · since 9.5.0.65`

```pascal
function  GetAsIso8601(const formatStr: string;
    bLocal: Boolean): string;
```

Returns the date/time in a compatible ISO 8601 format according to the format specified in `formatStr`.. Examples of ISO 8601 formats include the following:

```
    YYYY-MM-DD

    YYYY-MM-DDThh:mmTZD

    YYYY-MM-DDThh:mm:ssTZD

    YYYY-MM-DDThh:mm:ss:sssTZD
```

For the date portion of these formats, `YYYY` is a four-digit year representation, `MM` is a two-digit month, and `DD` is a two-digit day. For the time portion, `hh` is the hour in 24-hour notation, `mm` is the two-digit minutes, `ss` is the two-digit seconds, and `sss` is the 3-digit milliseconds. A time designator `T` separates the date and time portions of the string, while a time zone designator `TZD` specifies a time zone (UTC).

`bLocal` indicates whether a local or UTC time is returned.

Returns True for success, False for failure.

### CkDateTime.GetAsOleDate

`Chilkat 11.7.0 · pascal · CkDateTime · GetAsOleDate · method`

```pascal
function  GetAsOleDate(bLocal: Boolean): Double;
```

Returns the date/time in a Windows OLE `DATE` format.

`bLocal` indicates whether a local or UTC time is returned.

The OLE automation date format is a floating point value, counting days since midnight 30 December 1899. Hours and minutes are represented as fractional days.

### CkDateTime.GetAsRfc822

`Chilkat 11.7.0 · pascal · CkDateTime · GetAsRfc822 · method`

```pascal
function  GetAsRfc822(bLocal: Boolean): string;
```

Returns the date/time as an RFC822 formatted string. (An RFC822 format string is what is found in the `Date` header field of an email, such as `Wed, 18 Oct 2017 09:08:21 GMT`.)

`bLocal` indicates whether a local or UTC time is returned.

Returns True for success, False for failure.

### CkDateTime.GetAsTimestamp

`Chilkat 11.7.0 · pascal · CkDateTime · GetAsTimestamp · method · since 9.5.0.58`

```pascal
function  GetAsTimestamp(bLocal: Boolean): string;
```

Returns the date/time as an RFC 3339 formatted string, such as `1990-12-31T23:59:60Z`. (This is an ISO 8061 format like the following: YYYY-MM-DDThh:mm:ssTZD)

`bLocal` indicates whether a local or UTC time is returned.

Returns True for success, False for failure.

### CkDateTime.GetAsUnixTime

`Chilkat 11.7.0 · pascal · CkDateTime · GetAsUnixTime · method`

```pascal
function  GetAsUnixTime(bLocal: Boolean): LongWord;
```

Returns the date/time as a Unix time value, which is the number of seconds elapsed since 00:00:00 UTC on January 1, 1970.

`bLocal` indicates whether the date/time returned is local or UTC.

### CkDateTime.GetAsUnixTime64

`Chilkat 11.7.0 · pascal · CkDateTime · GetAsUnixTime64 · method`

```pascal
function  GetAsUnixTime64(bLocal: Boolean): Int64;
```

The same as GetUnixTime, except returns the date/time as a 64-bit integer.

`bLocal` indicates whether a local or UTC time is returned.

Note: 64-bit integers are needed after Jan 19, 2038. The Y2038 problem happens because some systems store Unix time as a signed 32-bit number of seconds since Jan 1, 1970. This number runs out on Jan 19, 2038, causing the time to wrap around to a date in 1901.

### CkDateTime.GetAsUnixTimeDbl

`Chilkat 11.7.0 · pascal · CkDateTime · GetAsUnixTimeDbl · method`

```pascal
function  GetAsUnixTimeDbl(bLocal: Boolean): Double;
```

The same as GetUnixTime, except returns the date/time as a double.

`bLocal` indicates whether a local or UTC time is returned.

### CkDateTime.GetAsUnixTimeStr

`Chilkat 11.7.0 · pascal · CkDateTime · GetAsUnixTimeStr · method · since 9.5.0.65`

```pascal
function  GetAsUnixTimeStr(bLocal: Boolean): string;
```

Returns the time in Unix format (in seconds since the epoch: 00:00:00 UTC on 1 January 1970).

`bLocal` indicates whether the date/time returned is local or UTC.

Returns True for success, False for failure.

### CkDateTime.LoadTaskResult

`Chilkat 11.7.0 · pascal · CkDateTime · LoadTaskResult · method · since 9.5.0.52`

```pascal
// task is a TTask object.

function  LoadTaskResult(task: TChilkatBase): Boolean;
```

Loads the date/time from a completed asynchronous task.

Returns True for success, False for failure.

### CkDateTime.OlderThan

`Chilkat 11.7.0 · pascal · CkDateTime · OlderThan · method · since 9.5.0.67`

```pascal
function  OlderThan(n: Integer;
    const units: string): Boolean;
```

Returns `True` if the date/time is older than the current system date/time by `n` seconds/minutes/hours/days. Otherwise returns `False`. The `units` can be `seconds`, `minutes`, `hours`, or `days` (plural or singular).

### CkDateTime.Serialize

`Chilkat 11.7.0 · pascal · CkDateTime · Serialize · method`

```pascal
function  Serialize: string;
```

Serializes the date/time to a us-ascii string that can be imported at a later time via the DeSerialize method. The format of the string returned by this method is not intended to match any published standard. It is formatted to a string with SPACE separated integers containing (in this order) year, month, day, hour, minutes, seconds, and a UTC flag having the value of 1 or 0.

Returns True for success, False for failure.

### CkDateTime.SetFromCurrentSystemTime

`Chilkat 11.7.0 · pascal · CkDateTime · SetFromCurrentSystemTime · method`

```pascal
function  SetFromCurrentSystemTime: Boolean;
```

Sets the date/time from the current system time.

Returns True for success, False for failure.

### CkDateTime.SetFromDateTimeTicks

`Chilkat 11.7.0 · pascal · CkDateTime · SetFromDateTimeTicks · method`

```pascal
function  SetFromDateTimeTicks(bLocal: Boolean;
    ticks: Int64): Boolean;
```

Sets the date/time from a .NET DateTime value represented in ticks. See GetAsDateTimeTicks for more information.

`bLocal` indicates whether the passed in date/time is local or UTC.

Returns True for success, False for failure.

### CkDateTime.SetFromDosDate

`Chilkat 11.7.0 · pascal · CkDateTime · SetFromDosDate · method`

```pascal
function  SetFromDosDate(bLocal: Boolean;
    t: LongWord): Boolean;
```

Sets the date/time from a 32-bit DOS date/time bitmask. See GetAsDosDate for more information.

Returns True for success, False for failure.

### CkDateTime.SetFromDtObj

`Chilkat 11.7.0 · pascal · CkDateTime · SetFromDtObj · method · since 9.5.0.47`

```pascal
// dt is a TDtObj object.

function  SetFromDtObj(dt: TChilkatBase): Boolean;
```

Sets the date/time from a Chilkat `Dt` object.

Returns True for success, False for failure.

### CkDateTime.SetFromNtpServer

`Chilkat 11.7.0 · pascal · CkDateTime · SetFromNtpServer · method · since 9.5.0.96`

```pascal
function  SetFromNtpServer(const jsonStr: string): Boolean;
```

Sets the date/time by sending a query to an NTP server.

Returns True for success, False for failure.

### CkDateTime.SetFromNtpTime

`Chilkat 11.7.0 · pascal · CkDateTime · SetFromNtpTime · method · since 9.5.0.50`

```pascal
function  SetFromNtpTime(ntpSeconds: Integer): Boolean;
```

Sets the date/time from a 32-bit NTP time value. `ntpSeconds` is the number of seconds since 00:00 (midnight) 1 January 1900 GMT.

Returns True for success, False for failure.

### CkDateTime.SetFromOleDate

`Chilkat 11.7.0 · pascal · CkDateTime · SetFromOleDate · method`

```pascal
function  SetFromOleDate(bLocal: Boolean;
    dt: Double): Boolean;
```

Sets the date/time from a Windows OLE `DATE` value.

`bLocal` indicates whether the passed in date/time is local or UTC.

**Note:** This method was not working correctly. The problem was discovered just after releasing v9.5.0.65. It will be fixed in the next version update.

Returns True for success, False for failure.

### CkDateTime.SetFromRfc822

`Chilkat 11.7.0 · pascal · CkDateTime · SetFromRfc822 · method`

```pascal
function  SetFromRfc822(const rfc822Str: string): Boolean;
```

Sets the date/time from an RFC822 date/time formatted string. Here are some examples of RFC822 formatted date/times:

```
Tue, 15 Nov 2022 22:00:58 +0000
Tue, 15 Nov 2022 20:21:50 +0100
Tue, 01 Nov 2022 18:09:41 -0600
```

Returns True for success, False for failure.

### CkDateTime.SetFromTimestamp

`Chilkat 11.7.0 · pascal · CkDateTime · SetFromTimestamp · method · since 9.5.0.58`

```pascal
function  SetFromTimestamp(const timestamp: string): Boolean;
```

Sets the date/time from an RFC 3339 timestamp format. (such as `1990-12-31T23:59:60Z:`)

(This is an ISO 8061 format like the following: YYYY-MM-DDThh:mm:ssTZD)

**Note:** Starting in v9.5.0.77, strings formatted as `YYMMDDhhmmssZ`, such as `181221132225Z`, can also be passed to this method.

Returns True for success, False for failure.

### CkDateTime.SetFromUlid

`Chilkat 11.7.0 · pascal · CkDateTime · SetFromUlid · method · since 9.5.0.94`

```pascal
function  SetFromUlid(bLocal: Boolean;
    const ulid: string): Boolean;
```

Sets this object's date/time using the timestamp embedded in the `ulid`. If the `ulid` was not a valid ULID, returns `False` and the date/time is not set. `bLocal` indicates whether the `ulid` uses a local time or UTC time.

Returns True for success, False for failure.

### CkDateTime.SetFromUnixTime

`Chilkat 11.7.0 · pascal · CkDateTime · SetFromUnixTime · method`

```pascal
function  SetFromUnixTime(bLocal: Boolean;
    t: LongWord): Boolean;
```

Sets the date/time from a UNIX time value.

`bLocal` indicates whether the passed in date/time is local or UTC.

Returns True for success, False for failure.

### CkDateTime.SetFromUnixTime64

`Chilkat 11.7.0 · pascal · CkDateTime · SetFromUnixTime64 · method`

```pascal
function  SetFromUnixTime64(bLocal: Boolean;
    t: Int64): Boolean;
```

The same as SetFromUnixTime, except that it uses a 64-bit integer to solve the Y2038 problem.

`bLocal` indicates whether the passed in date/time is local or UTC.

Note: 64-bit integers are needed after Jan 19, 2038. The Y2038 problem happens because some systems store Unix time as a signed 32-bit number of seconds since Jan 1, 1970. This number runs out on Jan 19, 2038, causing the time to wrap around to a date in 1901.

Returns True for success, False for failure.

### CkDateTime.SetFromUnixTimeDbl

`Chilkat 11.7.0 · pascal · CkDateTime · SetFromUnixTimeDbl · method`

```pascal
function  SetFromUnixTimeDbl(bLocal: Boolean;
    d: Double): Boolean;
```

The same as SetFromUnixTime, except that it uses a double to solve the Y2038 problem. (See GetAsUnixTime for more information about Y2038).

`bLocal` indicates whether the passed in date/time is local or UTC.

Returns True for success, False for failure.

### CkDateTime.ToDtObj

`Chilkat 11.7.0 · pascal · CkDateTime · ToDtObj · method · since 11.0.0`

```pascal
// dtObj is a TDtObj object.

procedure ToDtObj(bLocal: Boolean;
    dtObj: TChilkatBase);
```

Copies the date/time to the `dtObj`. Gets the date/time in the local time if `bLocal` is `True`, or GMT if `bLocal` is `False`.

### CkDateTime.UlidGenerate

`Chilkat 11.7.0 · pascal · CkDateTime · UlidGenerate · method · since 9.5.0.94`

```pascal
function  UlidGenerate(bLocal: Boolean): string;
```

Generates and returns a new ULID using this object's date/time value. `bLocal` indicates whether to use local time or UTC time.

Returns True for success, False for failure.

### CkDateTime.UlidIncrement

`Chilkat 11.7.0 · pascal · CkDateTime · UlidIncrement · method · since 9.5.0.94`

```pascal
// ulid is a TStringBuilder object.

function  UlidIncrement(ulid: TChilkatBase): Boolean;
```

Increments the ULID that is passed in `ulid`.

Returns True for success, False for failure.

### CkDateTime.UlidValidate

`Chilkat 11.7.0 · pascal · CkDateTime · UlidValidate · method · since 9.5.0.94`

```pascal
function  UlidValidate(const ulid: string): Boolean;
```

Validates the `ulid`. Returns `True` if the `ulid` is valid, otherwise returns `False`.

Returns True for success, False for failure.

## Related classes

[`DtObj`](https://www.chilkatsoft.com/ai-docs/v/11.7.0/pascal/classes/DtObj.md), [`StringBuilder`](https://www.chilkatsoft.com/ai-docs/v/11.7.0/pascal/classes/StringBuilder.md)

