如何在 android 中将日期时间转换为十六进制
How to convert date time in hex in android
我需要将日期和时间转换为十六进制代码,以便将其写入 IOT 设备。
这是我的代码
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());
}
它返回 11 位十六进制代码我需要 8 位数字,就像十六进制的日期和时间是 47C7EDE0
这个日期 12:34:56 29/Feb/2008
请帮忙
试试这个:
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);
}
而不是 returning
return Long.toHexString(date.getTime());
Return 关注
return Long.toHexString(date.getTime()/1000);
正如@shmosel 正确指出的那样,date.getTime() return 时间以毫秒为单位,如果您想要 8 位十六进制格式,则需要将其转换为第二种格式。
可以找到return类型的日期here
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))
}
}
我需要将日期和时间转换为十六进制代码,以便将其写入 IOT 设备。 这是我的代码
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());
}
它返回 11 位十六进制代码我需要 8 位数字,就像十六进制的日期和时间是 47C7EDE0
这个日期 12:34:56 29/Feb/2008
请帮忙
试试这个:
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);
}
而不是 returning
return Long.toHexString(date.getTime());
Return 关注
return Long.toHexString(date.getTime()/1000);
正如@shmosel 正确指出的那样,date.getTime() return 时间以毫秒为单位,如果您想要 8 位十六进制格式,则需要将其转换为第二种格式。
可以找到return类型的日期here
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))
}
}