Date and Time Functionality
Date and time variables
Infiniti provides four Date and Time variables - Date, Time, System Date and System Time. “System Date” and “System Time” uses the time zone from the hosting server whereas "Date" and "Time" uses the current users’ time zone.
For example, let the server time zone be 31/12/2012 10:30 PM and the user time zone be 01/01/2013 04:00 AM. Then,
System Date = 31/12/2012
System Time = 10:30 PM
Date = 01/01/2013
Time = 04:00 AM
Note: The function engine will take any value that looks like a date (eg: a version number 9.2.16) and interpret it as a date. To prevent this conversion always prefix any date-like non date values with a string (eg: v9.2.16), then insert the answer in a label and reference from there.
Date Validation
Often when entering dates via Produce or receiving them from a data source, validation should be applied to ensure the date is accurate. Below are some common examples that can be adapted to suit your situation.
Future Date/Date cannot be in the past (example above)##
Type: Compare
Comparison: Greater Than
Expression: today()
Message: ‘Your Message’
Note
- Change the comparison to greater than or equals to include the current day.
- Change the comparison type to less than etc to ensure the date is in the past.
At least ‘X’ Days, years, months etc. difference
The dateadd formula can be used to ensure the time difference is greater than a certain integer. For example, ensure an applicant is over 18 or the delivery date is at least two weeks into the future.
Type: Compare
Comparison: Less Than or Equal
Expression: DateAdd(0,-18,today())
Message: ‘Applicant must be 18 years old’
Note:
Change the comparison property together with the date add function (0=years and units -18) to suit your situation.
Named Date/Time Formats
Format Name | Description |
---|---|
General Date, or G | Displays a date and/or time. For real numbers, display a date and time; for example, 4/3/93 05:34 PM. If there is no fractional part, display only a date, for example, 4/3/93. If there is no integer part, display time only, for example, 05:34 PM. Date display is determined by your system's LocaleID value. |
Long Date, or D | Displays a date according to your locale's long date format. |
Medium Date | Displays a date using the medium date format appropriate for the language version of the host application. |
Short Date, or d | Displays a date using your locale's short date format. |
Long Time, or T | Displays a time using your locale's long time format; includes hours, minutes, seconds. |
Medium Time | Displays time in 12-hour format using hours and minutes and the AM/PM designator. |
Short Time, or t | Displays a time using the 24-hour format, for example, 17:45. |
f | Displays the long date and short time according to your locale's format. |
F | Displays the long date and long time according to your locale's format. |
g | Displays the short date and short time according to your locale's format. |
M, m | Displays the month and the day of a date. |
R, r | Formats the date and time as Greenwich Mean Time (GMT) |
s | Formats the date and time as a sortable index. |
u | Formats the date and time as a GMT sortable index. |
U | Formats the date and time with the long date and long time as GMT. |
Y, y | Formats the date as the year and month. |
Date's month digit appears as 00
Problem##
When formatting a date the month will appear as 00 if a lowercase 'mm' has been used within the format string.
As in the example below:
Date | Format String | Output |
---|---|---|
25/12/2020 | dd/mm/yyyy | 25/00/2020 |
25/12/2020 | dd/MM/yyyy | 25/12/2020 |
Solution##
The incorrect month is due to the lower case 'm' character referring to the minute value whereas the upper case 'M' referrers to the month value.
Dates format appears with 12 00 00AM in the generated document
Problem##
Questions with the data type set to 'Date' will return the date formatted in the long date format as in the following example:
Solution##
All dates are processed in the time/date format and if a time isn't specified 12:00 AM will be assumed. To remove the unwanted time a format string such as SHORT DATE, LONG DATE, dd/MM/yyyy must be used. Apply a format string by specifying the appropriate sting under the Answer properties.
See Format Strings in the Designer Guide for more information.
Updated over 6 years ago