微信搜索lxw1234bigdata | 邀请体验:数阅–数据管理、OLAP分析与可视化平台 | 赞助作者:赞助作者

Java和Shell版 十进制和十六进制(Hex)互转

编程语言 lxw1234@qq.com 13269℃ 1评论

这两天碰到一个需求,需要将日期yyyy-MM-dd、到秒粒度的时间戳,转换成十六进制(HexString)。

记录一下实现方法。

Java版本:

 

	
String day = "2015-05-21";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = new Date();
//将2015-05-21转换成时间戳
int unixtimstamp1 = (int) (sdf.parse(day).getTime()/1000);
//将时间戳转换为十六进制字符串
String hexString = String.format("%08X", unixtimstamp1);
System.out.println("HexString: [" + hexString + "] ..");
//将十六进制字符串转回时间戳
int unixtimstamp2 = Integer.parseInt(hexString,16);
d.setTime(unixtimstamp2*1000l);
System.out.println(sdf.format(d));

运行结果:

	
HexString: [555CAF80] ..
2015-05-21

Shell版本:

	
##将2015-05-21转换成时间戳
unixtimstamp1=`date -d "2015-05-21" +%s`

##将时间戳转换为十六进制字符串
hexString=`printf "%08X\n" $unixtimstamp1`
echo "HexString: [${hexString}] .."

##将十六进制字符串转回时间戳
unixtimstamp2=`echo $((16#${hexString}))`
day=`date -d "1970-01-01 UTC $unixtimstamp2 seconds" +%F`
echo $day

运行结果:

	
HexString: [555CAF80] ..
2015-05-21

如果觉得本博客对您有帮助,请 赞助作者

转载请注明:lxw的大数据田地 » Java和Shell版 十进制和十六进制(Hex)互转

喜欢 (2)
分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 为什么要改成十六进制的格式
    lluvio2016-03-17 11:24 回复