精华内容
下载资源
问答
  • 简述在Java8中,我们可以使用以下类来计算日期时间差异:1.Period2.Duration3.ChronoUnit二.Period类主要是Period类方法getYears(),getMonths()和getDays()来计算.示例:package insping;import java.time.LocalDate...

    一.简述

    在Java8中,我们可以使用以下类来计算日期时间差异:

    1.Period

    2.Duration

    3.ChronoUnit

    二.Period类

    主要是Period类方法getYears(),getMonths()和getDays()来计算.

    示例:

    package insping;

    import java.time.LocalDate;

    import java.time.Month;

    import java.time.Period;

    public class Test {

    public static void main(String[] args) {

    LocalDate today = LocalDate.now();

    System.out.println("Today : " + today);

    LocalDate birthDate = LocalDate.of(1993, Month.OCTOBER, 19);

    System.out.println("BirthDate : " + birthDate);

    Period p = Period.between(birthDate, today);

    System.out.printf("年龄 : %d 年 %d 月 %d 日", p.getYears(), p.getMonths(), p.getDays());

    }

    }

    结果:

    Today : 2017-06-16

    BirthDate : 1993-10-19

    年龄 : 23 年 7 月 28 日

    三.Duration类

    提供了使用基于时间的值(如秒,纳秒)测量时间量的方法。

    示例:

    package insping;

    import java.time.Duration;

    import java.time.Instant;

    public class Test {

    public static void main(String[] args) {

    Instant inst1 = Instant.now();

    System.out.println("Inst1 : " + inst1);

    Instant inst2 = inst1.plus(Duration.ofSeconds(10));

    System.out.println("Inst2 : " + inst2);

    System.out.println("Difference in milliseconds : " + Duration.between(inst1, inst2).toMillis());

    System.out.println("Difference in seconds : " + Duration.between(inst1, inst2).getSeconds());

    }

    }

    结果:

    Inst1 : 2017-06-16T07:46:45.085Z

    Inst2 : 2017-06-16T07:46:55.085Z

    Difference in milliseconds : 10000

    Difference in seconds : 10

    四.ChronoUnit类

    ChronoUnit类可用于在单个时间单位内测量一段时间,例如天数或秒。

    以下是使用between()方法来查找两个日期之间的区别的示例。

    package insping;

    import java.time.LocalDate;

    import java.time.Month;

    import java.time.temporal.ChronoUnit;

    public class Test {

    public static void main(String[] args) {

    LocalDate startDate = LocalDate.of(1993, Month.OCTOBER, 19);

    System.out.println("开始时间 : " + startDate);

    LocalDate endDate = LocalDate.of(2017, Month.JUNE, 16);

    System.out.println("结束时间 : " + endDate);

    long daysDiff = ChronoUnit.DAYS.between(startDate, endDate);

    System.out.println("两天之间的差在天数 : " + daysDiff);

    }

    }

    结果:

    开始时间 : 1993-10-19

    结束时间 : 2017-06-16

    两天之间的差在天数 : 8641

    原创不易,转载请注明出处。

    展开全文
  • 1.使用Java SDK计算两个Date之间的时间差,基本思路为把Date转换为ms(微秒),然后计算两个微秒时间差时间的兑换规则如下:1s = 1000ms毫秒 1min分种 = 60s 1hours小时 = 60min分钟 1day天 = 24hours小时...

    这篇文章将使用两个例子计算两个日期的时间差。

    1.使用Java SDK。

    2.使用Joda库。

    1.使用Java SDK

    计算两个Date之间的时间差,基本思路为把Date转换为ms(微秒),然后计算两个微秒时间差。时间的兑换规则如下:

    1s秒 = 1000ms毫秒 1min分种 = 60s秒 1hours小时 = 60min分钟 1day天 = 24hours小时

    package com.qiyadeng.date;

    import java.text.SimpleDateFormat;

    import java.util.Date;

    public class DateDifferentExample {

    public static void main(String[] args) {

    String dateStart = "2013-02-19 09:29:58";

    String dateStop = "2013-02-20 11:31:48";

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    Date d1 = null;

    Date d2 = null;

    try {

    d1 = format.parse(dateStart);

    d2 = format.parse(dateStop);

    //毫秒ms

    long diff = d2.getTime() - d1.getTime();

    long diffSeconds = diff / 1000 % 60;

    long diffMinutes = diff / (60 * 1000) % 60;

    long diffHours = diff / (60 * 60 * 1000) % 24;

    long diffDays = diff / (24 * 60 * 60 * 1000);

    System.out.print("两个时间相差:");

    System.out.print(diffDays + " 天, ");

    System.out.print(diffHours + " 小时, ");

    System.out.print(diffMinutes + " 分钟, ");

    System.out.print(diffSeconds + " 秒.");

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    }

    运行结果:

    两个时间相差:1 天, 2 小时, 1 分钟, 50 秒.

    2.Joda时间库

    package com.qiyadeng.date;

    import java.text.SimpleDateFormat;

    import java.util.Date;

    import org.joda.time.DateTime;

    import org.joda.time.Days;

    import org.joda.time.Hours;

    import org.joda.time.Minutes;

    import org.joda.time.Seconds;

    public class JodaDateDifferentExample {

    public static void main(String[] args) {

    String dateStart = "2013-02-19 09:29:58";

    String dateStop = "2013-02-20 11:31:48";

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    Date d1 = null;

    Date d2 = null;

    try {

    d1 = format.parse(dateStart);

    d2 = format.parse(dateStop);

    DateTime dt1 = new DateTime(d1);

    DateTime dt2 = new DateTime(d2);

    System.out.print("两个时间相差:");

    System.out.print(Days.daysBetween(dt1, dt2).getDays() + " 天, ");

    System.out.print(Hours.hoursBetween(dt1, dt2).getHours() % 24

    + " 小时, ");

    System.out.print(Minutes.minutesBetween(dt1, dt2).getMinutes() % 60

    + " 分钟, ");

    System.out.print(Seconds.secondsBetween(dt1, dt2).getSeconds() % 60

    + " 秒.");

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    }

    运行结果:

    两个时间相差:1 天, 2 小时, 1 分钟, 50 秒.

    展开全文
  • /*** 根据数据库时间查询当前一共创建了多少个订单数量* 覃光林* 2018-12-29 11:06:16*/@RequestMapping("/queryCreateOrderNumber")public String GetCreateOrderNumber() {System.out.println(...

    /**

    * 根据数据库时间查询当前一共创建了多少个订单数量

    * 覃光林

    * 2018-12-29 11:06:16

    */

    @RequestMapping("/queryCreateOrderNumber")

    public String GetCreateOrderNumber() {

    System.out.println("GetCreateOrderNumber=====" + getSysDate);

    String result = "";

    JdbcTemplate jdbcTemplate = configDataSource("oracle", "");

    String sql = "select count(*) from taobao_order where CREATE_TIME>TO_DATE('" + getSysDate + "','yyyy-MM-dd HH24:mi:ss') AND ORDER_NO like 'YID%'";

    result = jdbcTemplate.queryForObject(sql, java.lang.String.class);

    System.out.println("getSysDate=====" + getSysDate);

    System.out.println("newSysDate=====" + newSysDate);

    long newDate = fromDateStringToLong(newSysDate);

    long oldDate = fromDateStringToLong(getSysDate);

    long ss = (newDate - oldDate) / 1000; // 共计秒数

    return "从点击执行后「" + ss + "」秒大约造了" + result + "个订单";

    }

    /**

    * 此方法计算时间毫秒

    * 覃光林

    * 2018-12-29 14:10:01

    */

    public static long fromDateStringToLong(String inVal) {

    Date date = null; // 定义时间类型

    SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

    try {

    date = inputFormat.parse(inVal); // 将字符型转换成日期型

    } catch (Exception e) {

    e.printStackTrace();

    }

    return date.getTime(); // 返回毫秒数

    }

    展开全文
  • java计算时间精确到

    千次阅读 2019-03-21 15:13:05
    /** ... * @param firstLoginTime 最小的时间 * @param nowTime传递最大的时间 * @return */ public static JSONObject getDistanceTime(String firstLoginTime, String nowTime) { JSONOb...

    /**
         * 
         * @param firstLoginTime 最小的时间
         * @param nowTime传递最大的时间
         * @return
         */

        public static JSONObject getDistanceTime(String firstLoginTime, String nowTime) {
            JSONObject dataMap = new JSONObject();
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date d1;
            try {
                d1 = df.parse(nowTime);
                Date d2 = df.parse(firstLoginTime);// 用户初次登录时间
                long diff = d1.getTime() - d2.getTime(); 当前的时间减去我初次登陆的时间如果大于等于2小时
                long seconds = diff / (1000); // 共计秒数
                long days = diff / (1000 * 60 * 60 * 24);
                long hours = (diff - days * (1000 * 60 * 60 * 24)) / (1000 * 60 * 60);
                long minutes = (diff - days * (1000 * 60 * 60 * 24) - hours * (1000 * 60 * 60)) / (1000 * 60);
                dataMap.put("hours", hours);
                dataMap.put("minutes", minutes);
                dataMap.put("seconds", seconds);
                dataMap.put("days", days);

                return dataMap;
            } catch (ParseException e) {
            } // 当前时间
            return dataMap;

        }


        public static void main(String[] args) {
            String aa = "2019-03-03 12:30:00";
            String bb = "2019-03-03 12:32:00";
            JSONObject json = getDistanceTime(aa, bb);
            String sec = json.getString("seconds");
            System.out.println(sec);
        }
     

    展开全文
  • 比如:现在是2004-03-26 13:31:40过去是:2004-01-02 11:30:24我现在要获得两个日期的形式为:XX天XX小时XX分XX秒java计算时间差及比较时间大小比如:现在是2004-03-26 13:31:40过去是:2004-01-02 11:...
  • java计算时间差及比较时间大小比如:现在是2004-03-2613:31:40过去是:2004-01-0211:30:24我现在要获得两个日期的形式为:XX天XX小时XX分XX方法一:DateFormatdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:...
  • JAVA 计算时间差

    2019-10-05 01:28:00
    JAVA 计算时间差 比如:现在是2004-03-26 13:31:40 过去是:2004-01-02 11:30:24我现在要获得两个日期的形式为:XX天XX小时XX分XX方法一: 1 DateFormat df = new S...
  • 比如:现在是2004-03-26 13:31:40过去是:2004-01-02 11:30:24我现在要获得两个日期的形式为:XX天XX小时XX分XX方法一:DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");try{Date d1 = df...
  • 现在是2004-03-26 13:31:40过去是:2004-01-02 11:30:24要获得两个日期的形式为:XX天XX小时XX分XX方法一:DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");try{Date d1 = df.parse("2004...
  • public static void main(String[] args) {Calendar c=Calendar.getInstance();int y=2016;//年int M=1;//月int d=1;//日int H=0;...//c.set(Calendar.YEAR, y);c.set(Calendar.MONTH, M-1);c.set(...
  • 1.使用Java SDK计算两个Date之间的时间差,基本思路为把Date转换为ms(微秒),然后计算两个微秒时间差时间的兑换规则如下:1s = 1000ms毫秒 1min分种 = 60s 1hours小时 = 60min分钟 1day天 = 24hours小时...
  • 现在是2004-03-26 13:31:40过去是:2004-01-02 11:30:24要获得两个日期的形式为:XX天XX小时XX分XX方法一:DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");try{Date d1 = df.parse("2004...
  • 比如:现在是2004-03-26 13:31:40过去是:2004-01-02 11:30:24我现在要获得两个日期的形式为:XX天XX小时XX分XX方法一:DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");try{ Date d1 = ...
  • 比如:现在是2004-03-26 13:31:40过去是:2004-01-02 11:30:24我现在要获得两个日期的形式为:XX天XX小时XX分XX秒java计算时间差及比较时间大小比如:现在是2004-03-26 13:3...
  • java计算日期/时间差我也想计算两个日期之间的差额以小时/分钟/为单位。我的代码有一个小问题,就是:StringdateStart="11/03/1409:29:58";StringdateStop="11/03/1409:33:43";//...
  • java计算时间差

    2014-03-08 10:12:48
    javaz中对日期时间的处理比较多,代码中列出了3中日期时间计算差值的方法。 比如:现在是2004-03-...java计算时间差及比较时间大小 比如:现在是2004-03-26 13:31:40 过去是:2004-01-02 11:30:24 我现在要获得两
  • 在oracle中计算时间差 计算时间差是oracle data数据类型的一个常见问题。oracle支持日期计算,你可以创建诸如“日期1-日期2”这样的表达式来计算这两个日期之间的时间。 一旦你发现了时间差异,你可以使用简单的...
  • 展开全部比如:现在是2004-03-26 13:31:40过去是:2004-01-02 11:30:24我现在要获得两个e5a48de588b662616964757a686964616f31333365633962日期的形式为:XX天XX小时XX分XX方法一:DateFormat df = new ...
  • 比如:现在是2004-03-26 13:31:40过去是:2004-01-02 11:30:24我现在要获得两个日期的形式为:XX天XX小时XX分XX秒java计算时间差及比较时间大小比如:现在是2004-03-26 13:31:40过去是:2004-01-02 11:...
  • java计算日期/时间差我也想计算两个日期之间的差额以小时/分钟/为单位。我的代码有一个小问题,就是:StringdateStart="11/03/1409:29:58";StringdateStop="11/03/1409:33:43";//...
  • /*** 根据数据库时间查询当前一共创建了多少个订单数量* 覃光林* 2018-12-29 11:06:16*/@RequestMapping("/queryCreateOrderNumber")public String GetCreateOrderNumber() {System.out.println(...
  • 我想以小时/分钟/为单位计算两个日期之间的差异。我的代码在这里有一个小问题:String dateStart = "11/03/14 09:29:58";String dateStop = "11/03/14 09:33:43";// Custom date formatSimpleDateFormat format = ...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 330
精华内容 132
关键字:

java计算时间秒差

java 订阅