---
product: Chilkat
product_version: 11.7.0
language: swift
language_label: Swift
class: CkDateTime
class_name: CkoDateTime
license: free
deprecated: false
reference_html: https://www.chilkatsoft.com/refdoc/swift_CkDateTimeRef.html
---
# Chilkat CkDateTime — Swift — v11.7.0

> Chilkat 11.7.0 · language=swift · class=CkDateTime (CkoDateTime)
> 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/swift/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

**Object Creation**

```swift
let obj = CkoCkDateTime()!
```

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 Swift.

How failure is reported depends on the method's return type and is stated in the note under each method below. In every case the diagnostic text is in the `LastErrorText` property of the object whose method was called.

## 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` | `debugLogFilePath: String!` | 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` | `lastErrorHtml: String! (read-only)` | read-only | Provides HTML-formatted information about the last called method or property. |
| `LastErrorText` | `lastErrorText: String! (read-only)` | read-only | Provides plain text information about the last called method or property. |
| `LastErrorXml` | `lastErrorXml: String! (read-only)` | read-only | Provides XML-formatted information about the last called method or property. |
| `LastMethodSuccess` | `lastMethodSuccess: Bool` | read/write | Indicates the success or failure of the most recent method call: `true` means success, `false` means failure. |
| `VerboseLogging` | `verboseLogging: Bool` | read/write | If set to `true`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. |
| `Version` | `version: String! (read-only)` | read-only | Version of the component/library, such as "10.1.0" |

## Member index

| Member | Kind | Signature |
|---|---|---|
| `IsDst` | property, read-only | `isDst: Int (read-only)` |
| `UtcOffset` | property, read-only | `utcOffset: Int (read-only)` |
| `AddDays` | method | `addDays(numDays: Int) -> Bool` |
| `AddSeconds` | method | `addSeconds(numSeconds: Int) -> Bool` |
| `DeSerialize` | method | `deSerialize(serializedDateTime: String)` |
| `DiffSeconds` | method | `diffSeconds(dateTimeArg: CkoDateTime) -> Int` |
| `ExpiresWithin` | method | `expires(within: Int, units: String) -> Bool` |
| `GetAsDateTimeTicks` | method | `get(asDateTimeTicks: Bool) -> Int64` |
| `GetAsDosDate` | method | `get(asDosDate: Bool) -> UInt` |
| `GetAsIso8601` | method | `get(asIso8601: String, bLocal: Bool) -> String` |
| `GetAsOleDate` | method | `get(asOleDate: Bool) -> Double` |
| `GetAsRfc822` | method | `get(asRfc822: Bool) -> String` |
| `GetAsTimestamp` | method | `get(asTimestamp: Bool) -> String` |
| `GetAsUnixTime` | method | `get(asUnixTime: Bool) -> UInt` |
| `GetAsUnixTimeDbl` | method | `get(asUnixTimeDbl: Bool) -> Double` |
| `GetAsUnixTimeStr` | method | `get(asUnixTimeStr: Bool) -> String` |
| `LoadTaskResult` | method | `loadTaskResult(task: CkoTask) -> Bool` |
| `OlderThan` | method | `older(than: Int, units: String) -> Bool` |
| `Serialize` | method | `serialize() -> String` |
| `SetFromCurrentSystemTime` | method | `setFromCurrentSystemTime() -> Bool` |
| `SetFromDateTimeTicks` | method | `set(fromDateTimeTicks: Bool, n: Int64) -> Bool` |
| `SetFromDosDate` | method | `set(fromDosDate: Bool, t: UInt) -> Bool` |
| `SetFromDtObj` | method | `set(fromDtObj: CkoDtObj) -> Bool` |
| `SetFromNtpServer` | method | `set(fromNtpServer: String) -> Bool` |
| `SetFromNtpTime` | method | `set(fromNtpTime: Int) -> Bool` |
| `SetFromOleDate` | method | `set(fromOleDate: Bool, dt: Double) -> Bool` |
| `SetFromRfc822` | method | `set(fromRfc822: String) -> Bool` |
| `SetFromTimestamp` | method | `set(fromTimestamp: String) -> Bool` |
| `SetFromUlid` | method | `set(fromUlid: Bool, ulid: String) -> Bool` |
| `SetFromUnixTime` | method | `set(fromUnixTime: Bool, t: UInt) -> Bool` |
| `SetFromUnixTimeDbl` | method | `set(fromUnixTimeDbl: Bool, t: Double) -> Bool` |
| `ToDtObj` | method | `toDtObj(bLocal: Bool, dtObj: CkoDtObj)` |
| `UlidGenerate` | method | `ulidGenerate(bLocal: Bool) -> String` |
| `UlidIncrement` | method | `ulidIncrement(ulid: CkoStringBuilder) -> Bool` |
| `UlidValidate` | method | `ulidValidate(ulid: String) -> Bool` |

Deprecated members are listed at the end of this file with their replacements; do not use them in new code.

## Properties

### CkDateTime.IsDst

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

```swift
isDst: Int  (read-only)
```

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 · swift · CkDateTime · UtcOffset · property · read-only`

```swift
utcOffset: Int  (read-only)
```

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 · swift · CkDateTime · AddDays · method`

```swift
addDays(numDays: Int) -> Bool
```

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 · swift · CkDateTime · AddSeconds · method · since 9.5.0.65`

```swift
addSeconds(numSeconds: Int) -> Bool
```

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 · swift · CkDateTime · DeSerialize · method`

```swift
deSerialize(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 · swift · CkDateTime · DiffSeconds · method · since 9.5.0.65`

```swift
diffSeconds(dateTimeArg: CkoDateTime) -> Int
```

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

### CkDateTime.ExpiresWithin

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

```swift
expires(within: Int, units: String) -> Bool
```

Returns `true` if the date/time is within `within` 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 · swift · CkDateTime · GetAsDateTimeTicks · method`

```swift
get(asDateTimeTicks: Bool) -> Int64
```

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

`asDateTimeTicks` 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 · swift · CkDateTime · GetAsDosDate · method`

```swift
get(asDosDate: Bool) -> UInt
```

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

`asDosDate` 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 · swift · CkDateTime · GetAsIso8601 · method · since 9.5.0.65`

```swift
get(asIso8601: String, bLocal: Bool) -> String
```

Returns the date/time in a compatible ISO 8601 format according to the format specified in `asIso8601`.. 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 `nil` on failure

### CkDateTime.GetAsOleDate

`Chilkat 11.7.0 · swift · CkDateTime · GetAsOleDate · method`

```swift
get(asOleDate: Bool) -> Double
```

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

`asOleDate` 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 · swift · CkDateTime · GetAsRfc822 · method`

```swift
get(asRfc822: Bool) -> 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`.)

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

Returns `nil` on failure

### CkDateTime.GetAsTimestamp

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

```swift
get(asTimestamp: Bool) -> 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)

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

Returns `nil` on failure

### CkDateTime.GetAsUnixTime

`Chilkat 11.7.0 · swift · CkDateTime · GetAsUnixTime · method`

```swift
get(asUnixTime: Bool) -> UInt
```

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.

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

### CkDateTime.GetAsUnixTimeDbl

`Chilkat 11.7.0 · swift · CkDateTime · GetAsUnixTimeDbl · method`

```swift
get(asUnixTimeDbl: Bool) -> Double
```

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

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

### CkDateTime.GetAsUnixTimeStr

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

```swift
get(asUnixTimeStr: Bool) -> String
```

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

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

Returns `nil` on failure

### CkDateTime.LoadTaskResult

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

```swift
loadTaskResult(task: CkoTask) -> Bool
```

Loads the date/time from a completed asynchronous task.

Returns true for success, false for failure.

### CkDateTime.OlderThan

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

```swift
older(than: Int, units: String) -> Bool
```

Returns `true` if the date/time is older than the current system date/time by `than` 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 · swift · CkDateTime · Serialize · method`

```swift
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 `nil` on failure

### CkDateTime.SetFromCurrentSystemTime

`Chilkat 11.7.0 · swift · CkDateTime · SetFromCurrentSystemTime · method`

```swift
setFromCurrentSystemTime() -> Bool
```

Sets the date/time from the current system time.

Returns true for success, false for failure.

### CkDateTime.SetFromDateTimeTicks

`Chilkat 11.7.0 · swift · CkDateTime · SetFromDateTimeTicks · method`

```swift
set(fromDateTimeTicks: Bool, n: Int64) -> Bool
```

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

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

Returns true for success, false for failure.

### CkDateTime.SetFromDosDate

`Chilkat 11.7.0 · swift · CkDateTime · SetFromDosDate · method`

```swift
set(fromDosDate: Bool, t: UInt) -> Bool
```

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 · swift · CkDateTime · SetFromDtObj · method · since 9.5.0.47`

```swift
set(fromDtObj: CkoDtObj) -> Bool
```

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

Returns true for success, false for failure.

### CkDateTime.SetFromNtpServer

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

```swift
set(fromNtpServer: String) -> Bool
```

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 · swift · CkDateTime · SetFromNtpTime · method · since 9.5.0.50`

```swift
set(fromNtpTime: Int) -> Bool
```

Sets the date/time from a 32-bit NTP time value. `fromNtpTime` 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 · swift · CkDateTime · SetFromOleDate · method`

```swift
set(fromOleDate: Bool, dt: Double) -> Bool
```

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

`fromOleDate` 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 · swift · CkDateTime · SetFromRfc822 · method`

```swift
set(fromRfc822: String) -> Bool
```

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 · swift · CkDateTime · SetFromTimestamp · method · since 9.5.0.58`

```swift
set(fromTimestamp: String) -> Bool
```

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 · swift · CkDateTime · SetFromUlid · method · since 9.5.0.94`

```swift
set(fromUlid: Bool, ulid: String) -> Bool
```

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. `fromUlid` indicates whether the `ulid` uses a local time or UTC time.

Returns true for success, false for failure.

### CkDateTime.SetFromUnixTime

`Chilkat 11.7.0 · swift · CkDateTime · SetFromUnixTime · method`

```swift
set(fromUnixTime: Bool, t: UInt) -> Bool
```

Sets the date/time from a UNIX time value.

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

Returns true for success, false for failure.

### CkDateTime.SetFromUnixTimeDbl

`Chilkat 11.7.0 · swift · CkDateTime · SetFromUnixTimeDbl · method`

```swift
set(fromUnixTimeDbl: Bool, t: Double) -> Bool
```

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

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

Returns true for success, false for failure.

### CkDateTime.ToDtObj

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

```swift
toDtObj(bLocal: Bool, dtObj: CkoDtObj)
```

Copies the date/time to the `dtObj`. Gets the date/time in the local time if is `true`, or GMT if is `false`.

### CkDateTime.UlidGenerate

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

```swift
ulidGenerate(bLocal: Bool) -> String
```

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

Returns `nil` on failure

### CkDateTime.UlidIncrement

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

```swift
ulidIncrement(ulid: CkoStringBuilder) -> Bool
```

Increments the ULID that is passed in .

Returns true for success, false for failure.

### CkDateTime.UlidValidate

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

```swift
ulidValidate(ulid: String) -> Bool
```

Validates the . Returns `true` if the is valid, otherwise returns `false`.

Returns true for success, false for failure.

## Deprecated members — do not use in new code

| Member | Kind | Deprecated in | Use instead |
|---|---|---|---|
| `GetDtObj` | method | before 11.6.1 | — |

## Related classes

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

