「java时间can」java时间排序

博主:adminadmin 2023-01-22 16:09:07 253

本篇文章给大家谈谈java时间can,以及java时间排序对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

菜鸟求教,用java的Canlendar类实现计算从键盘输入的两个日期相隔的天数

主要用到Canendar的before、compareTo、add方法,代码如下:

@Test

public void test() throws ParseException {

    SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");

    String str1 = "2010-5-27";

    Calendar c1 = Calendar.getInstance();

    Date date1 = sdf.parse(str1);

    c1.setTime(date1);

    String str2 = "2010-6-27";

    Calendar c2 = Calendar.getInstance();

    Date date2 = sdf.parse(str2);

    c2.setTime(date2);

    int diff = 0;

    if (c1.before(c2)) {

        while (true) {

            diff++;

            c1.add(Calendar.DAY_OF_MONTH, 1);

            if (c1.compareTo(c2) == 0) {

                System.out.println("相隔:"+ diff + "天");

                return;

            }

        }

    } else if (c2.before(c1)){

        while (true) {

            diff++;

            c2.add(Calendar.DAY_OF_MONTH, 1);

            if (c1.compareTo(c2) == 0) {

                System.out.println("相隔:"+ diff + "天");

                return;

            }

        }

    } else {

        System.out.println("相隔:"+ diff + "天");

    }

}

输出结果:

相隔:31天

java中知道两个日期如何获得两个日期之间的天数

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

public class Test {

public static void main(String[] args) {

try {

//时间转换类

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date date1 = sdf.parse("2014-1-10");

Date date2 = sdf.parse("2012-12-20");

//将转换的两个时间对象转换成Calendard对象

Calendar can1 = Calendar.getInstance();

can1.setTime(date1);

Calendar can2 = Calendar.getInstance();

can2.setTime(date2);

//拿出两个年份

int year1 = can1.get(Calendar.YEAR);

int year2 = can2.get(Calendar.YEAR);

//天数

int days = 0;

Calendar can = null;

//如果can1  can2

//减去小的时间在这一年已经过了的天数

//加上大的时间已过的天数

if(can1.before(can2)){

days -= can1.get(Calendar.DAY_OF_YEAR);

days += can2.get(Calendar.DAY_OF_YEAR);

can = can1;

}else{

days -= can2.get(Calendar.DAY_OF_YEAR);

days += can1.get(Calendar.DAY_OF_YEAR);

can = can2;

}

for (int i = 0; i  Math.abs(year2-year1); i++) {

//获取小的时间当前年的总天数

days += can.getActualMaximum(Calendar.DAY_OF_YEAR);

//再计算下一年。

can.add(Calendar.YEAR, 1);

}

System.out.println("天数差:"+days);

} catch (ParseException e) {

e.printStackTrace();

}

}

}

Console:

天数差:386

java获得当前的秒,分和钟点数

1.

java.util.Date date = new java.util.Date();

date.getHours(); //时

date.getMinutes();//分

date.getSeconds();//秒

2.

java.util.Calendar can = java.util.Calendar.getInstance();

System.out.println(can.get(can.HOUR)); //时

System.out.println(can.get(can.MINUTE)); //分

System.out.println(can.get(can.SECOND)); //秒

如何用java 获取15分钟以前的时间

代码如下:

1.得到当前的时间

Calendar cal = Calendar.getInstance();

String time=formatter.format(cal.getTime());

String strEnd=time.substring(0, 16);// 2007-10-30 09:30

2.得到前一天的时间

Calendar c = Calendar.getInstance();

c.add(Calendar.DAY_OF_MONTH, -1);

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

String mDateTime=formatter.format(c.getTime());

String strStart=mDateTime.substring(0, 16);//2007-10-29 09:30

3.得到前几天的时间

Calendar c = Calendar.getInstance();

c.add(Calendar.DAY_OF_MONTH, -5);//得到前5

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

String mDateTime=formatter.format(c.getTime());

String strStart=mDateTime.substring(0, 16);//2007-10-24 09:30

4.得到当前时间的前几年的时间

Calendar c = Calendar.getInstance();

c.add(Calendar.YEAR, -5);//得到前5年

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

String mDateTime=formatter.format(c.getTime());

String strStart=mDateTime.substring(0, 16);//2002-10-24 09:30

Java 获得纯数字格式的时间

Java 获得纯数字格式的时间有下面三种方法

方法 一

System.currentTimeMillis();

方法 二

Calendar.getInstance().getTimeInMillis();

方法 三

new Date().getTime();

以下是效率对比:

import java.util.Calendar;

import java.util.Date;

public class TimeTest {

private static long _TEN_THOUSAND=10000;

public static void main(String[] args) {

long times=1000*_TEN_THOUSAND;

long t1=System.currentTimeMillis();

testSystem(times);

long t2=System.currentTimeMillis();

System.out.println(t2-t1);

testCalander(times);

long t3=System.currentTimeMillis();

System.out.println(t3-t2);

testDate(times);

long t4=System.currentTimeMillis();

System.out.println(t4-t3);

}

public static void testSystem(long times){//use 188

for(int i=0;itimes;i++){

long currentTime=System.currentTimeMillis();

}

}

public static void testCalander(long times){//use 6299

for(int i=0;itimes;i++){

long currentTime=Calendar.getInstance().getTimeInMillis();

}

}

public static void testDate(long times){

for(int i=0;itimes;i++){

long currentTime=new Date().getTime();

}

}

}

因为很简单我就不加注释了,每种方法都运行1千万次,然后查看运行结果

187

7032

297

结果发现 System.currentTimeMillis() 这种方式速度最快

Calendar.getInstance().getTimeInMillis() 这种方式速度最慢,看看源码会发现,Canlendar因为要处理时区问题会耗费很多的时间。

所以建议多使用第一种方式。

用java如何实现动态获取当前时间到过期时间的剩余时间

Date date = new Date()//当前时间

startTime = date.getTime()//当前时间的毫秒数

endTime = new Date(2015, 8, 1).getTime();//得到15.8.1号的毫秒数

你要的剩余时间毫秒t = (endTime-startTime);

t/1000就是秒数. t/1000/60 就是分钟 .....以此类推

java时间can的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java时间排序、java时间can的信息别忘了在本站进行查找喔。