Format patterns are strings that define a date-time format. Here’s one example:
<YYYY></><MM></><DD> <hh><:><mm><:><ss><ampm>
The parts of the pattern in angle brackets are called field descriptors. They represent a value (such as <YYYY>, which is a four-digit year) or other date-time text (such as </>, which is a locale-specific date separator).
The conversion of a date-time value to a string and a string converted to a date-time value work as follows:
• When a date-time value is converted to a string, the field descriptors are replaced by the appropriate value or symbols.
• When a string is converted to a date-time value, a value is or matching symbols are expected to be found where each field descriptor is. Anything outside a format descriptor is treated as literal text. The literal text is replaced as-is when it is converted to a string, and is expected to be found where specified when converting from a string.
Format |
Output |
---|---|
<YYYY></><MM></><DD> <hh><:><mm><:><ss><ampm> |
2020/02/10 11:54:33 AM |
<DayOfWeek>, <Month> <D>, <YYYY> |
Wednesday, February 5, 2020 |
<Day>d <hh24>h <mm>m <ss>s |
123d 02h 34m 56s |
Note: <Day> is the day count, used as the most significant field of a duration. <Hour> and <Minute> field descriptors are also available.
The following script uses Informat() to read a string date-time value, defines the format pattern used in that string, and returns the date in ddMonyyyy format. The script then outputs the date-time value to the log.
dateVal = Informat( "June 16, 2016", "Format Pattern", "<Month> <D>, <YYYY>" );
16Jun2016
Here’s another way to specify the format pattern:
date2 = 16Jun2021;
dayofwk2 = Format( date2, "Format Pattern", "<DayOfWeek>" );
monthnew2 = Format( date2, "Format Pattern", "<Month>" );
YYYYMMDD = Format( date2, "Format Pattern", "<YYYY></><MM></><DD>" );
YYMMMDD = Format( date2, "Format Pattern", "<YY></><MMM></><DD>" );
"21/Jun/16"
The following script shows how to change the input format of a column. The Input Format appears when you edit the value in a data table.
New Table( "temp_date",
Add Rows( 2 ),
New Column( "date1",
Numeric,
"Continuous",
// specify how the value appears in the data table
Format( "Format Pattern", "<Month> <D>, <YYYY>", 35 ),
// specify how the value appears when you edit the value
Input Format( "Format Pattern", "<YYYY>*<MM>*<DD>" ),
Set Values( {"2018*10*31", "2018*09*09"} )
),
New Column( "date2",
Numeric,
"Continuous",
Format( "Format Pattern", "<YYYY>*<MM>*<DD>", 10 ),
Set Values( {"2018*02*05", "2018*07*03"} )
)
);
Note: See Customize Date-Time Formats with Format Patterns in Using JMP for details about creating a format pattern in a data table rather than in a script.