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.