zpl.tools
Real-time clock

^SL - Set Mode and Language (for Real-Time Clock)

Chooses which moment the clock reports and which language its month and day names are printed in.

^SL answers two questions about a clock field that nothing else can. It selects when the printer reads the time, and in which language it spells the month and day names. The first answer matters only on a multi-copy run. The default mode reads the clock once, as the format arrives, so every copy of a hundred-label job carries the same timestamp. With T, the printer stamps each copy as the copy reaches the print queue.

Syntax

^SLa,b

Support

Supportedparsed: full · state: full · rendered: full

Every documented parameter renders the same output Labelary produces.

Labelary renders this command.

Parameters

aClock modeoptional · one of a set

Which moment the clock reports: the parse of the format, its entry into the print queue, or the last tick of a fixed-resolution clock.

Default
S
Invalid value
not possible — any value is accepted. No mode changes a rendered label, because one render reads one instant (measured 2026-08-16).
Test coverage
No documented value is exercised by a test (S, T, 0, 1-999).
S
The time at ^XA, when the printer starts to format the label, so every copy carries the same time (default)
T
The time read when the label enters the print queue, so it advances copy by copy
0
A one-second tolerance, on the enhanced clock of firmware V60.13.0.10 and above
1-999
The time at the last tick of a clock with this resolution, in seconds
bLanguageoptional · one of a set

Language used for month and day names substituted into a ^FC field. Numbers 2 and 10 are the guide's two Spanish variants.

Default
1 (English)
Invalid value
discarded, and the current value is kept. A number outside 1-20 keeps the language already set. An omitted or non-numeric argument resets to English (measured 2026-08-16).
Test coverage
Bounds pinned: past what the shape can hold (99999999999999999999). Values exercised: 3. Not exercised: 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20. The invalid-value rule is pinned by 2 tests.
1
English (default)
2
Spanish (Spanish 1 in the guide)
3
French
4
German
5
Italian
6
Norwegian
7
Portuguese
8
Swedish
9
Danish
10
Spanish (Spanish 2 in the guide)
11
Dutch
12
Finnish
13
Japanese
14
Korean
15
Simplified Chinese
16
Traditional Chinese
17
Russian
18
Polish
19
Czech
20
Romanian

Behavior

The guide requires ^SL before the first ^FO. The whole format reads the setting, not one field, so one is enough.

The language reaches only the substituted parts of a field. It governs the month and weekday names that %B, %A and their relatives expand to. The printer prints the literal text around them byte for byte, so a French label still needs French label text. Labelary renders %B %d, %Y under ^SLT,3 as novembre 12, 2023, and %A as dimanche (verified 2026-07-30).

One firmware rule sits behind the two modes and the numeric resolution. From V60.13.0.10 the enhanced clock rejects a time field more than sixty seconds old, and renders the image again instead. ^SLT and ^SL60 rely on that behavior. A numeric argument sets that tolerance to a value other than sixty seconds, and ^SLS is the one mode that accepts a stale time. The guide warns that the same timestamp, or a jump of several seconds, can still appear across labels on a complex format at speed. The tolerance is a bound, not a guarantee.

Tested behavior

Differences from the specification

Labelary against the ZPL II guide

Where Labelary — our compatibility target — behaves differently from the printed specification.

  • The 2006 guide's language list stops at 12, Finnish. Languages 13 to 20 (Japanese, Korean, Simplified and Traditional Chinese, Russian, Polish, Czech and Romanian) come from Labelary's reference and newer firmware. — not pinned by a test
  • The guide gives S as the mode default; Labelary's reference states no default for the mode. — not pinned by a test

zpl.tools against the ZPL II guide

Where our renderer behaves differently from the specification.

  • The guide's mode chooses which moment the printer reads. One render reads one instant, so every mode gives the same label. Labelary agrees (measured 2026-08-16). — not pinned by a test

Example

A French date field on a fixed clock, so the render is repeatable. Language 3 is French, and ^ST pins the moment:

^XA
^ST11,12,2023,22,50,00,M
^SLT,3
^FO40,40^A0N,40,40^FC%^FD%B %d, %Y^FS
^FO40,110^A0N,40,40^FC%^FD%A^FS
^XZ

Open in viewer