「java时间can」java时间排序
本篇文章给大家谈谈java时间can,以及java时间排序对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、菜鸟求教,用java的Canlendar类实现计算从键盘输入的两个日期相隔的天数
- 2、java中知道两个日期如何获得两个日期之间的天数
- 3、java获得当前的秒,分和钟点数
- 4、如何用java 获取15分钟以前的时间
- 5、Java 获得纯数字格式的时间
- 6、用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的信息别忘了在本站进行查找喔。