'How to convert date time in hex in android

I need to convert date and time in hex code for writing it on IOT device. Here is my code

private String getDateTimeToHexa() { 

Calendar mCalendar = Calendar.getInstance();
TimeZone gmtTime =  TimeZone.getTimeZone(TimeZone.getDefault().getDisplayName());

    mCalendar.setTimeZone(gmtTime);
    final Date date = mCalendar.getTime();
    return Long.toHexString(date.getTime());
}

It is returning 11 digits hex code I need 8 digits, just like date and time in hex is 47C7EDE0 for this date 12:34:56 29/Feb/2008

Please help



Solution 1:[1]

Try this:

 private String getDateTimeToHexa() {
        Calendar mCalendar = Calendar.getInstance();
        TimeZone gmtTime =  TimeZone.getTimeZone(TimeZone.getDefault().getDisplayName());
        mCalendar.setTimeZone(gmtTime);
        final Date date = mCalendar.getTime();
        return Long.toHexString(date.getTime()/1000);
    }

Solution 2:[2]

import java.util.Calendar;
import java.util.Date;
public class Date {
    public static void main(final String[] args)
    {
    final Calendar cal = Calendar.getInstance();
    cal.set(Calendar.DATE, 15);
    cal.set(Calendar.MONTH, Calendar.DECEMBER);
    cal.set(Calendar.YEAR, 2005);
    cal.set(Calendar.HOUR, 17);
    cal.set(Calendar.MINUTE, 35);
    cal.set(Calendar.SECOND, 20);
    final Date date = cal.getTime();

    System.out.printf("Date %s is encoded as: %s\n", date, Long.toHexString(date.getTime()));
    // decode with: new Date(Long.parseLong("1082f469308", 16))
}

}

Solution 3:[3]

Instead of returning

return Long.toHexString(date.getTime());

Return following

return Long.toHexString(date.getTime()/1000);

As correctly pointed out by @shmosel that date.getTime() return time in a millisecond and if you want 8 digit Hex format then it needs to be converted in the second format.

The return type of Date can be found here

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 Mona
Solution 3