Message Sets: DateTime as BINARY data

The count of pattern letters determines the number of bytes used to represent a value. The symbol used in the pattern of letters can be used only in groups of 1, 2, or 4; for example, y, yy, or yyyy.

The following table shows the dateTime symbols for binary data:

Symbol Meaning Example
y year 1996
M month in year 7
d day in month 10
H hour in day (0-23) 13
m minute in hour 30
s second in minute 55
S millisecond 978
X
Ignore on input
Pad with zeros on output
 

The following example shows the C language structure tm with an integer of four bytes:

struct tm
{ int tm_sec;      /* seconds after the minute   - [0,59]*/
{ int tm_min;      /* minutes after the hour     - [0,59]*/
{ int tm_hour;     /* hours since midnight       - [0,23]*/
{ int tm_mday;     /* day of the month           - [1,31]*/
{ int tm_mon;      /* months since January       - [0,11]*/
{ int tm_year;     /* years since 1900           */
{ int tm_wday;     /* days since Sunday          - [0,6]*/
{ int tm_yday;     /* days since January 1       - [0,365]*/
{ int tm_isdst;    /* daylight saving time flag */
};

You can format this structure by specifying the string "ssssmmmmHHHHddddMMMM+1yyyy+1900XXXXXXXXXXXX". The number of pattern letters determines the number of bytes. There are 36 A-Z characters specified in this pattern, which match the 36 byte structure tm. A field followed by a plus sign (+) has the succeeding numeric characters added to it. Therefore MMMM+1 adds one to the month, yyyy+1900 adds 1900 to the year. X expects one byte of input, but ignores its value. On output, it writes the byte as 0.