When I worked in the auto industry we had to fight for every bit on the CAN bus since it was always on the verge of congestion. We did insane statemachines to carry payload in unrelated bits.
I can easily see someone doing:
unsigned date = 202201011758;
*(unsigned*)&tx[0] = date;
And in another ECU:
int date = *(int*)&rx [0];
int y = date / 100000000; // -20
int M = date / 1000000 - y*100; // -93
...
Or just saturating negative numbers to 0, since integer values over 0xFD00 0000 (something) are reserved for error handling.