class RawDateSerialiser implements ToBytesSerialiser<Date> {

    @Override
    public byte[] serialise(final Date date) throws SerialisationException {
        final byte[] out = new byte[8];
        final long value = date.getTime();
        // NB Serialise high-order bits first
        out[0] = (byte) ((value >> 56) & 255);
        out[1] = (byte) ((value >> 48) & 255);
        out[2] = (byte) ((value >> 40) & 255);
        out[3] = (byte) ((value >> 32) & 255);
        out[4] = (byte) ((value >> 24) & 255);
        out[5] = (byte) ((value >> 16) & 255);
        out[6] = (byte) ((value >> 8) & 255);
        out[7] = (byte) (value & 255);
        return out;
    }

}