Java中日期的用法和通话时间计算

时间:2021-01-06 18:09:51

本文是软件测试的一次实验整理出的一些关键点:


1.日期的获得和验证日期的合法性:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
simpleDateFormat.setLenient(false);//验证日期合法

此处用try-catch结构接收输入信息,当输入日期不合法 时,抛出的异常被捕捉到,此时可以在catch内打印错误信息,如:System.out.println("输入日期无效!");

2.输入日期并得到年月日时分秒:

@SuppressWarnings("resource")
Scanner input1 = new Scanner(System.in);
System.out.print("请输入第一个日期:");
Date date1 = simpleDateFormat.parse(input1.nextLine());
//System.out.println(simpleDateFormat.format(date1));//打印日期
Calendar calendar1=Calendar.getInstance();
calendar1.setTime(date1);

以上用日历类获取日期,获得年月日时分秒:

int year1=calendar1.get(Calendar.YEAR);//得到年
int month1=calendar1.get(Calendar.MONTH)+1;//得到月,因为从0开始的,所以要加1
int day1=calendar1.get(Calendar.DAY_OF_MONTH);//得到日
int hour1=calendar1.get(Calendar.HOUR_OF_DAY);//得到时
int minute1=calendar1.get(Calendar.MINUTE);//得到分
int second1=calendar1.get(Calendar.SECOND);//得到秒

3.实现功能需要将时钟重新赋值:

hour2++;

calendar2.set(Calendar.HOUR_OF_DAY, hour2);

4.计算相差多少分钟:

//计算相差多少毫秒

long timeOne=calendar1.getTimeInMillis();
long timeTwo=calendar2.getTimeInMillis();

//计算相差多少分钟
double minute=(double)(timeTwo-timeOne)/(1000*60);

//进一法保存minute的值
minute=Math.ceil(minute);
//System.out.println(minute);