java字符串时间计算

计算两个字符串时间之间的间隔:

知识先知:

	时间格式为:DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");函数df.parse(Time):可以将字符串时间转化为时间戳进行计算。时间格式符号代表的意义:yyyy:年MM:月dd:日hh:1~12小时制(1-12)HH:24小时制(0-23)mm:分ss:秒S:毫秒E:星期几D:一年中的第几天F:一月中的第几个星期(会把这个月总共过的天数除以7)w:一年中的第几个星期W:一月中的第几星期(会根据实际情况来算)a:上下午标识k:和HH差不多,表示一天24小时制(1-24)。K:和hh差不多,表示一天12小时制(0-11)。z:表示时区  

方法:

  1. 将字符串类型的时间格式进行转化。
  2. 对时间进行计算。
  3. 将得到的结果转化成我们想要的格式。

代码如下:

 import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/*** @Description* @Date Created in 17:30 2021/2/3* @Created by XZF**/public class computeTime {public static void main(String[] args) {// 1. 初始化条件String startTime="2020-11-30 14:42:37";String endTime= "2020-11-30 16:50:24";long day = 0;long hour = 0;long min = 0;long sec = 0 ;DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");long minutes = 0L;try {// 2. 时间类型转化Date d1 = df.parse(endTime);Date d2 = df.parse(startTime);// 3. 时间计算long diff = d1.getTime() - d2.getTime();// 这样得到的差值是微秒级别// 4. 对结果时间进行转化minutes = diff / (1000 * 60);long nd = 1000*24*60*60;//一天的毫秒数long nh = 1000*60*60;//一小时的毫秒数long nm = 1000*60;//一分钟的毫秒数long ns = 1000;//一秒钟的毫秒数day = diff/nd;hour = diff%nd/nh;min = diff%nd%nh/nm;sec = diff%nd%nh%nm/ns;String duration = String.valueOf(day)+"天"+hour+":"+min+":"+sec;System.out.println(duration);} catch (ParseException e) {System.out.println("抱歉,时间日期解析出错。");}System.out.println(String.valueOf(day)+" "+hour+":"+min+":"+sec);}}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部