Date and time data types

The DATE, DATE_AND_TIME (DT) and TIME_OF_DAY (TOD) data types are handled internally like a UDINT (32-bit value).

Data type

Lower limit

Upper limit

Storage space

Resolution

Syntax

DATE

D#1970-01-01
(01.01.1970)

D#2106-02-07
(07.02.2106)

32-bit

Seconds, although only the day is displayed.

DATE#yyyy-MM-dd

D#yyyy-MM-dd

DATE_AND_TIME
DT

DT#1970-1-1-0:0:0
(01.01.1970, 00:00 h)

DT#2106-02-07-06:28:15
(07.02.2106, 06:28:15 h)

32-bit

Seconds

DATE_AND_TIME#yyyy-MM-dd-hh:mm:ss

DT#yyyy-MM-dd-hh:mm:ss

TIME_OF_DAY
TOD

TOD#0:0:0
(00:00:00:000 h)

TOD#23:59:59.999
(23:59:59.999 h)

32-bit

Milliseconds

TIME_OF_DAY#hh:mm:ss

TOD#hh:mm:ss.sss

The LDATE, LDATE_AND_TIME (LDT) and LTIME_OF_DAY (LTOD) data types are handled internally, like a ULINT (64-bit value).

Data type

Lower limit

Upper limit

Storage space

Resolution

Syntax

LDATE

LD#1677-9-22
(22.09.1677)

Default:
LD#1970-1-1
(01.01.1970)

LD#2262-4-11
(11.04.2262)

64-bit

Nanoseconds, although only the day is displayed.

LDATE#yyyy-MM-dd

LD#yyyy-MM-dd

LDATE_AND_TIME
LDT

LDT#1677-9-21-0:12:43.145224192
(21.09.1677, 00:12:23.15 h)

Default:
LDT#1970-1-1-0:0:0
(01.01.1970, 00:00 h)

LDT#2262-4-11-23:47:16.854775807
(11.04.2262, 23:47:16.85 h)

64-bit

Nanoseconds

LDATE_AND_TIME##yyyy-MM-dd-hh:mm:ss.sssssssss

LDT##yyyy-MM-dd-hh:mm:ss.sssssssss

 

LTIME_OF_DAY
LTOD

LTOD#0:0:0
(00:00 h)

LTOD#23:59:59.999999999
(23:59:59.99 h)

64-bit

Nanoseconds

LTIME_OF_DAY#hh:mm:ss.sssssssss

LTOD#hh:mm:ss.sssssssss

Date and time data types 1:

Requirements

For the data types LDATE, LDATE_AND_TIME (LDT) and LTIME_OF_DAY (LTOD) TwinCAT version 3.1.4026.0 or later is required.

Samples:

VAR

    // Date
    dLowerLimit   : DATE           := DATE#1970-1-1;
    dUpperLimit   : DATE           := DATE#2106-2-7;
    dAppointment  : DATE           := D#2026-2-7;

    // Date and time
    dtLowerLimit  : DATE_AND_TIME  := DATE_AND_TIME#1970-1-1-0:0:0;
    dtUpperLimit  : DATE_AND_TIME  := DATE_AND_TIME#2106-02-07-06:28:15;
    dtAppointment : DT             := DT#2026-2-7-12:55:1;

    // Time of day
    tdLowerLimit  : TIME_OF_DAY    := TIME_OF_DAY#0:0:0;
    tdUpperLimit  : TIME_OF_DAY    := TIME_OF_DAY#23:59:59.999;
    tdAppointment : TOD            := TOD#12:3:4.567;

    // Long date
    dLowerLimit   : LDATE          := LDATE#1677-9-22;
    dDefault      : LDATE          := LDATE#1970-1-1;
    dUpperLimit   : LDATE          := LDATE#2262-4-11;
    dAppointment  : LDATE          := LD#2026-2-7;

    // Long date and time
    dtLowerLimit  : LDATE_AND_TIME := LDATE_AND_TIME#1677-9-21-0:12:43.145224192;   // ULINT#16#8000000000000000
    dtDefault     : LDATE_AND_TIME := LDATE_AND_TIME#1970-1-1-0:0:0;                // ULINT#16#0
    dtUpperLimit  : LDATE_AND_TIME := LDATE_AND_TIME#2262-4-11-23:47:16.854775807;
    dtAppointment : LDT            := LDT#2026-2-7-12:55:1.234567891;               // ULINT#16#7FFFFFFFFFFFFFFF

    // Long time of day
    tdLowerLimit  : LTIME_OF_DAY   := LTIME_OF_DAY#0:0:0;
    tdUpperLimit  : LTIME_OF_DAY   := LTIME_OF_DAY#23:59:59.999999999;
    tdAppointment : LTOD           := LTOD#12:3:4.567890123;

END_VAR

See also: