TimeStamp求时间差的方式的记录
最近在写相关时间类型的方法,对时间类型(Date,Time,SimpleDateFormat,TimeStamp)进行使用。
收集整理
SimpleDateFormat
parse方法:将字符串类型(java.lang.String)解析为日期类型(java.util.Date)
format方法:将日期类型(Date)数据格式化为字符串(String)
TimeStamp
获得两个时间的时间差
//方式一:
public class Test {
public static void main(String[] args) {
System.out.println(getTimeStampNumberFormat(new Timestamp(System.currentTimeMillis())));
System.out.println(getTimeDifference(new Timestamp(System.currentTimeMillis()+1000*60), new Timestamp(System.currentTimeMillis())));
}
static String getTimeStampNumberFormat(Timestamp formatTime) {
SimpleDateFormat mFormat = new SimpleDateFormat("yyyy-MM-dd,HH:mm:ss", new Locale("zh", "cn"));
return mFormat.format(formatTime);
}
public static String getTimeDifference(Timestamp formatTime1, Timestamp formatTime2) {
SimpleDateFormat timeformat = new SimpleDateFormat("yyyy-MM-dd,HH:mm:ss");
long t1 = formatTime1.getTime();
long t2 = formatTime2.getTime();
int hours=(int) ((t1 - t2)/(1000*60*60));
int minutes=(int) (((t1 - t2)/1000-hours*(60*60))/60);
int second=(int) ((t1 - t2)/1000-hours*(60*60)-minutes*60);
return ""+hours+"小时"+minutes+"分"+second+"秒";
}
}
//方式二:
public class Test {
public static void main(String[] args) {
System.out.println(getTimeStampNumberFormat(new Timestamp(System.currentTimeMillis())));
System.out.println(getTimeDifference(new Timestamp(System.currentTimeMillis()+1000*60), new Timestamp(System.currentTimeMillis())));
}
static String getTimeStampNumberFormat(Timestamp formatTime) {
SimpleDateFormat mFormat = new SimpleDateFormat("yyyy-MM-dd,HH:mm:ss", new Locale("zh", "cn"));
return mFormat.format(formatTime);
}
public static String getTimeDifference(Timestamp formatTime1, Timestamp formatTime2) {
SimpleDateFormat timeformat = new SimpleDateFormat("yyyy-MM-dd,HH:mm:ss");
long t1 = 0L;
long t2 = 0L;
try {
t1 = timeformat.parse(getTimeStampNumberFormat(formatTime1)).getTime();
} catch (ParseException e) {
e.printStackTrace();
}
try {
t2 = timeformat.parse(getTimeStampNumberFormat(formatTime2)).getTime();
} catch (ParseException e) {
e.printStackTrace();
}
//因为t1/t2都是时间戳都是毫秒为单位,所以需要格式化他们的时间
int hours=(int) ((t1 - t2)/(1000*60*60));
int minutes=(int) (((t1 - t2)/1000-hours*(60*60))/60);
int second=(int) ((t1 - t2)/1000-hours*(60*60)-minutes*60);
return ""+hours+"小时"+minutes+"分"+second+"秒";
}
}
每天总结一点,让生活更加的充实。