原文:java中把UTC时间戳(System.currentTimeMillis())转化为代表日期的整数
背景
在向数据库中存储日期时,很多时候习惯于存储一个整数,也就是java里的System.currentTimeMillis(),这个数字精确到了毫秒级。如果我们不想要这么精确呢,比如只想精确到小时、日期等等。利用Calendar可以轻松达到这个目的。
方法
首先把Calendar对象clear一下,然后,设置必要的字段即可(也可以反过来想,把不想要的字段clear掉。)。比如,只精确到日期,可利用如下转换:
long time = xxxx;
//先解析给定的时间
Calendar c = Calendar.getInstance();
c.setTimeInMillis(time);
Calendar date = Calendar.getInstance();
//清除所有数据
date.clear();
date.set(c.get(Calendar.YEAR),c.get(Calendar.MONTH),c.get(Calendar.DAY_OF_MONTH));
long result = date.getTimeInMillis();