求日期与十六进制如何实现转换?
如下几组数表示的时间ae4f0950 2012年07月20日 20:31:42
ae4f0a50 2012年07月21日 14:43:58
00000000 1970年01月01日 08:00:00
ffffffff 2000年02月03日 04:37:51
求指点怎样编写一个把日期和时间相互转换的程式啊! --------------------编程问答-------------------- 看不懂你所列出来的规则是啥,不过最简单就是:
long timer = new Date().getTime() / 1000; // 如果需要毫秒,就别除1000
System.out.printf("0x%08X\n", timer);
如果希望得到字符串,可以:
String hex = "0x" + Long.toHexString(timer); --------------------编程问答--------------------
import java.util.HashMap;
import java.util.Map;
public class Test {
public static void main(String[] args) throws Exception {
Map<String,String> map = new HashMap<String,String>();
map.put("ae4f0a50","2012年07月21日 14:43:58");
map.put("2012年07月21日 14:43:58","ae4f0a50");
map.put("00000000","1970年01月01日 08:00:00");
map.put("1970年01月01日 08:00:00","00000000");
System.out.println("ae4f0a50 --> " + map.get("ae4f0a50"));
System.out.println("2012年07月21日 14:43:58 --> " + map.get("2012年07月21日 14:43:58"));
}
}
不知道楼主是不是这个意思。 --------------------编程问答-------------------- 是这个意思 8位十六进制的数 来表示 时间
12345678 这1到8表示这8个数的位置
2位数上加一表示加一秒
1位数上加一表示加了十六秒
4位数上加一则是16X16秒
3位数上加一则是16X256秒
这样怎样写一个程式直接输入时间 转换成十六进制数 --------------------编程问答-------------------- 你说的这个做法,我1楼贴的代码就可以实现了,你只要给个Date就行。
但我很好奇的是:
00000000 1970年01月01日 08:00:00
ffffffff 2000年02月03日 04:37:51
你这两个风马牛不相及的结果是怎么计算出来的?
--------------------编程问答-------------------- 呵呵FFFFFFFF 写错了 算不出来的 --------------------编程问答-------------------- 楼上的大哥能帮忙完善一下吗,我现在还搞不定啊 --------------------编程问答-------------------- 你试了这个效果么?
long timer = new Date().getTime() / 1000;
System.out.printf("0x%08X\n", timer);
String hex = "0x" + Long.toHexString(timer);
应该是可以满足你要求的。 --------------------编程问答--------------------
+1
再用Date构造方法弄一下就成了. --------------------编程问答--------------------
补充:Java , Web 开发