加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何在java中将日期转换为十六进制

发布时间:2020-12-15 02:13:55 所属栏目:Java 来源:网络整理
导读:我不熟悉 java,我需要获取当前的datetime并将其表示为一个字符串,例如: #1:135790246811221:1:*,00000000,UP,060B08,0D1908# 其中060B08是YYMMDD:GPS日期(2006年11月8日). 6个字符,十六进制. 和0D1908是HHMMSS:发送时间,6个字符,十六进制 YYMMDD:发送日
我不熟悉 java,我需要获取当前的datetime并将其表示为一个字符串,例如:

#1:135790246811221:1:*,00000000,UP,060B08,0D1908#

其中060B08是YYMMDD:GPS日期(2006年11月8日). 6个字符,十六进制.

和0D1908是HHMMSS:发送时间,6个字符,十六进制

YYMMDD:发送日期(13:25:08),十六进制,例如::表示060B08.

我正在尝试这段代码:

Calendar cal = Calendar.getInstance();
Date date = new Date();
String date_str = String.format("%02x%02x%02x",cal.getTime().getYear(),cal.getTime().getMonth(),cal.getTime().getDay());
String hour_str = String.format("%02x%02x%02x",cal.getTime().getHours(),cal.getTime().getMinutes(),cal.getTime().getSeconds());
String content = "#1:" + imei + ":1:*,"+ date_str.getBytes() +","+ hour_str.getBytes()+"#";
ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
buf.writeBytes(content.getBytes(Charset.defaultCharset()));
channel.write(buf);

但是错了,正在回归:

#1:359672050130411:1:*,[B@7f07ff6a,[B@d4dd3b6#

解决方法

Calendar.getTime()返回 Date.
Date.getYear()已被弃用,Date.getHours()和其他大多数也被弃用.

理想情况下,您应该使用Calendar.get(Calendar.YEAR)和Calendar.get(Calendar.HOUR_OF_DAY).

同样适用于月,日,分和秒.

获得整数值后,可以使用Integer.toHexString()将它们转换为十六进制(如果需要)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读