我不熟悉Java,需要获取当前日期时间并将其表示为字符串,例如:
#1:135790246811221:1:*,00000000,UP,060B08,0D1908#
其中060B08代表YYMMDD:GPS日期(2006年11月8日)。6个字符,十六进制。
而0D1908代表HHMMSS:发送时间,6个字符,十六进制。
YYMMDD:发送日期(13:25:08),6个字符,十六进制,例如:用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:*,00000000,UP,"+ date_str.getBytes() +","+ hour_str.getBytes()+"#";
ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
buf.writeBytes(content.getBytes(Charset.defaultCharset()));
channel.write(buf);
但是错误,返回的是:
#1:359672050130411:1:*,00000000,UP,[B@7f07ff6a,[B@d4dd3b6#
getBytes()
调用。一开始它们为什么存在并不清楚... - Jon SkeetCalendar
对象,您还需要包括它的时区。 - peterh