@Test
public void lmpToGesWeek1(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String lmp = "2020-01-04 14:30:20";
String sampleDate = "2020-06-04 20:43:20";
long weeks = 0;
long days = 0;
long hours = 0;
try {
//两个时间差
long diff = sdf.parse(sampleDate).getTime() - sdf.parse(lmp).getTime();
weeks = diff/( 1000*60*60*24*7 );
days = (diff - weeks*(1000*60*60*24*7))/(1000*60*60*24);
hours = (diff - weeks*(1000*60*60*24*7) - days*(1000*60*60*24) )/(1000*60*60);
}catch (Exception e){
e.printStackTrace();
}
System.out.println(weeks+"周"+days+"天"+hours+"时");
}
解析:
1. 先将时间转化为时间的毫秒数(时间戳),然后再对比两个时间的大小
2. 周:一周有7天,一天有24小时,一小时有60分钟,一分钟有60秒,一秒有1000毫秒,
所有1000*60*60*24*7是一周的毫秒数
3. 天:一天有24小时,一小时有60分钟,一分钟有60秒,一秒有1000毫秒,
所有1000*60*60*24*7是一周的毫秒数
3. 小时:一小时有60分钟,一分钟有60秒,一秒有1000毫秒,
所有1000*60*60*24*7是一周的毫秒数
4. 时间戳:是指格林威治时间1970年01月01日00时00分00秒起至当下的总秒数