Date Format Patterns
Summary
Fields of type DATE
support multiple input formats. By default, two formats are recognized:
ISO-8601 (e.g.,
2025-06-30T15:00:00Z
)UNIX Timestamps in milliseconds (e.g.,
1730342400000
)
Starting with version 3.0, you can define a custom date pattern for a DATE
field if your data uses a format other than the defaults above. This allows the FactFinder system to parse dates correctly during data import.
The custom date pattern must conform to the standard Java date format patterns (as described in the following sections).
Important: Custom patterns are only used for parsing imported data. Regardless of the input format, all dates are returned by the REST API and displayed in the Cockpit in ISO-8601 format.
Dates
Date format patterns are defined using a sequence of encoding symbols, each representing components like year, month, and day. In this section, we explain how to construct patterns that include these elements.
Best Practice: Always include a time zone format in your date pattern and ensure that every date value includes a time zone. This helps avoid ambiguity and ensures consistent parsing across systems. More details are available in the section titled “Time Zone.”
Note: If a provided date value includes only the date (year, month, day) and omits the time, the system will automatically assume a time of 00:00 (midnight). To avoid unintended behavior, we recommend always including a time component in your date values.
year
yy
last 2 digits of a year within the range 2000 to 2099
yyyy
4 digits of a year
month
M
1 to 12 as well as 01 to 12
month (name, in English)
MMM
3-letter code, e.g., Jan, Feb, ...
MMMM
full name
day (of month)
d
1 to 31 as well as 01 to 31
day (of week, in English)
eee
Mon to Sun
eeee
Monday to Sunday
Common examples for dates:
yyyy M d z
1999 3 22 UTC
yyyy MMMM d z
2022 March 22 CET
d MMM yy z
1 Jan 22 CET
eee d M yyyy z
Tue 22 3 2006 UTC
eeee d MMMM yyyy z
Tuesday 22 March 2006 CET
d.M.yyyy z
22.8.1999 CEST
yyyy.M.d z
1999.03.22 UTC
yyyy. M. d. z
2033. 3. 22. CET
d-M-yyyy z
22-03-2010 UTC
M-d-yy z
3-22-10 CET
yyyy-M-d z
1999-03-22 UTC
M/d/yy z
3/22/10 CET
d. MMMM yyyy z
22. March 2001 UTC
MMMM d, yyyy z
March 22, 2041 CET
Time
The values of DATE
fields always represent a specific point in time. If a value does not include time information, it is interpreted as referring to the start of the day (i.e., 00:00:00
). To explicitly provide time information, you can use either the 24-hour format (e.g., 14:30
) or the 12-hour format with an AM/PM marker (e.g., 02:30 PM
).
Note: If any part of the time—such as hour, minute, or second—is omitted, it will default to
0
. For example,2025-06-30
will be interpreted as2025-06-30T00:00:00
.
24-hour format
hour of day
H
0 to 23 as well as 00 to 23
minute
m
0 to 59 as well as 00 to 59
second
s
0 to 59 as well as 00 to 59
second
ss
00 to 59
second incl. milliseconds
ss.SSS
00.000 to 59.999
Common examples for the 24-hour format:
d.M.yyyy H:m z
22.03.2020 13:37 CET
d.M.yyyy HⓂ️s z
22.03.2020 13:37:05 CET
d.M.yyyy H.m z
22.03.2020 13.37 UTC
d.M.yyyy HⓂ️ss.SSS z
22.11.2022 15:57:06.539 CET
12-hour format
hour of AM/PM
K
0-11 (with 0:00 AM equal to 0:00 and 0:00 PM equal to 12:00)
minute
m
0 to 59 as well as 00 to 59
second
s
0 to 59 as well as 00 to 59
second
ss
00 to 59
second incl. milliseconds
ss.SSS
00.000 to 59.999
am/pm
a
AM or PM
Common examples for the 12-hour format:
d.M.yyyy K:m a z
22.03.1999 8:15 AM UTC
22.03.1999 08:15 PM UTC
d.M.yyyy KⓂ️s a z
22.03.1999 08:15:00 AM UTC
22.03.1999 10:22:13 PM UTC
Time zone
FactFinder converts every provided date value to the time zone of the server it is hosted on. This server time zone is reflected in all date values returned or displayed by FactFinder, as they are formatted using the ISO-8601 standard.
If a date value does not include time zone information, FactFinder will interpret it using the server’s default time zone.
Recommendation: Always include a time zone in your date values to ensure consistent and predictable results. Omitting the time zone can lead to unexpected behavior, especially across different deployments or environments.
You can specify time zone information in a date pattern using the following symbols:
time zone ID
VV
Europe/Berlin; Europe/Lisbon
time zone name
z
PST; UTC; CET
zzzz
Pacific Standard Time; Universal Coordinated Time
time zone offset
X
Z; +00; -08
XXXX
Z; -0830; +083015
XXXXX
Z; 08:30; +08:30:15
time zone offset (in English)
O
GMT; GMT+8; GMT-08:00
Examples:
d.M.yyyy H:mXXXX
30.08.2022 08:15+0200
2022-08-30T08:15:00+02:00
d.M.yyyy H:m O
22.02.2022 08:15 GMT+2
2022-02-22T07:15:00+01:00
d.M.yyyy H:m z
22.02.2022 05:06 PDT
2022-02-22T14:06:00+01:00
d.M.yyyy H:m z
22.02.2022 05:06 CET
2022-02-22T05:06:00+01:00
d.M.yyyy H:m zzzz
22.02.2022 05:06 Universal Coordinated Time
2022-02-22T06:06:00+01:00
Special case: time not provided but time zone provided (not suggested!)
If dates do not contain information about their time zone, they are interpreted in the time zone of the hosting server (see example #1 below).
As mentioned above, dates without a specified time are interpreted to reference the start of the day. By specifying the time zone, the provided value will reference the start of the given day in that time zone. FactFinder NG When a time zone is explicitly specified, the value is understood to represent the start of the given day in that specific time zone. FactFinder NGwill consistently treat this as a fixed point in time, regardless of where it is processed.
| Example value | Start of the day in: | Resulting ISO-8601 (assuming hosted in Germany) | | 30.08.2022 | hosting location i.e. Berlin | 2022-08-30T00:00:00+02:00 | | 30.08.2022+0100 | London | 2022-08-30T01:00:00+02:00 | | 30.08.2022+0300 | Moscow | 2022-08-29T23:00:00+02:00 |
Free text
All letters A to Z and a to z are reserved pattern symbols. Any non-letter character, other than '[', ']', '{', '}', '#'
and the single quote, will be parsed as is.
You can mask letters by surrounding them with single quotes (')
if you want to use them in free text. Use a single quote to mask a single quote ('')
.
Examples:
d. MMM ''yy z
22. Jan '99 UTC
'Export date:' yyyy M d z
Export date: 1999 03 22 UTC
d'x'M'x'yyyy’x’z
22x3x1999xUTC
d.M.yyyy H'h'm z
22.03.1999 13h37 CET
d.M.yyyy 'at' H:m z
22.03.1999 at 13:37 CET
d.M.yyyy H 'o''clock' z
22.03.1999 5 o'clock UTC
Last updated
Was this helpful?