Java中,怎么将当前时间的milliSeconds转换为hour级别的milliSeconds?

场景:
得到一个时间戳A:1473406568
对应的日期是B:2016/9/9 15:36:8
现在需要的是时间戳C:2016/9/9 15:00:00 对应的毫秒。

现在有大量的毫秒A数据,需要直接转为C中值,请问应该怎么处理?

阅读 7.8k
5 个回答

那玩意叫时间戳

Date date = new Date(1473406568);
SimpleDateFormat formatter =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
System.out.println(formatter.format(date));

若只取毫秒,可以使用 Calendar

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(1473406568);
calendar.get(Calendar.MILLISECOND)
新手上路,请多包涵
long currentTimeMillis = System.currentTimeMillis();
Log.d("test", currentTimeMillis + "");
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH");
String format = dateFormat.format(currentTimeMillis);
try {
    Date date = dateFormat.parse(format);
    long time = date.getTime();
    Log.d("test", time + "");
} catch (ParseException e) {
    e.printStackTrace();
}
    
Log打印结果:
test: 1473410102814
test: 1473408000000

本小时的毫秒 = 时间戳 % 3600000
小时时间戳 = 时间戳 - 本小时的毫秒
注意时区问题

long ms = 1473406568 * 1000L;
Calendar c = Calendar.getInstance();
c.setTimeInMillis(ms);
c.clear(Calendar.MINUTE);
c.clear(Calendar.SECOND);

System.out.println(c.getTimeInMillis() / 1000); // unix timestamp
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(c.getTime()));
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(1473406568);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
System.out.println(calendar.getTimeInMillis());
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题