JavaSE常用类之时间类
时间类
JavaSE常用时间类:
1. Date 日期类
2. Calendar 日历类
3. SimpleDateFormat 格式化时间类
Date和Calendar类 在java.util包中
SimpleDateFormat类 在java.text包
1. Date日期类
【1】new Date() 可以获取到系统时间
【2】getTime() 能获取到时间的long形式,可以用来计算时间差
getTime()————获取计算机底层存储的数字,返回一个数字用来表示时间,这个数字的类型long,单位为毫秒。
代码
package DateT;
import java.util.Date;
public class Datetime {
public static void main(String[] args) {
Date date = new Date();
System.out.println(date); //系统时间
System.out.println(date.getYear()+1900); //2022年 -》从1900年开始算的
System.out.println(date.getMonth()+1); //4月 -》 月份从0月开始计算
System.out.println(date.getDate()); //天数
System.out.println(date.getHours()); //小时
System.out.println(date.getMinutes()); //分钟
System.out.println(date.getSeconds()); //秒数
System.out.println(date.getTime()); //1649301435716 获取到时间的long形式,单位为毫秒
}
}
2. Calendar 日历类
【1】get() 获取时间
【2】set() 设置时间(注意:月份0代表1月)
【2】add()运算时间
注意:Calendar 日历类是抽象类,因此不可以去new对象。虽然抽象类不能创建对象,但是jdk官方提供了一个实例对象的操作:Calendar instance = Calendar.getInstance();
代码:
package DateT;
import java.util.Calendar;
public class Calendartime {
public static void main(String[] args) {
//对象实例化
Calendar ins = Calendar.getInstance();
//获取时间
System.out.println(ins.get(Calendar.YEAR)); //2022年
System.out.println(ins.get(Calendar.MONDAY)+1); //4月 月份:从0开始的,应该加1
System.out.println(ins.get(Calendar.DATE)); //7天
System.out.println(ins.get(Calendar.HOUR_OF_DAY)); //11小时
System.out.println(ins.get(Calendar.MINUTE)); //32分钟
System.out.println(ins.get(Calendar.SECOND)); //17秒
System.out.println("=====================================");
//设置时间(月份0代表1月)
ins.set(2012,3,21,23,33,20);
ins.set(Calendar.YEAR, 2014);
//运算时间
ins.add(Calendar.YEAR, 1);
}
}
cal.setTime(d); 把Date转化成Calendar
代码:
Date d = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(d);// 把Date转化成Calendar
3.SimpleDateFormat格式化时间类
SimpleDateFormat类是专门帮我们格式化时间的工具类
【时间格式】:yyyy-MM-dd HH:mm:ss
SimpleDateFormat类有两大常用方法:
【1】format(Date):
format(Date) 帮我们把时间转成字符串,字符串的格式为SimpleDateFormat类定义对象时设置的时间格式
代码:
package DateT;
import javax.xml.crypto.Data;
import java.text.SimpleDateFormat;
import java.util.Date;
//时间格式:yyyy-MM-dd HH:mm:ss
public class SimpleDateFormatT {
public static void main(String[] args) {
Date date = new Date();
System.out.println(date); //Thu Apr 07 11:50:41 CST 2022 不美观
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s= sdf.format(date);
System.out.println(s); //2022-04-07 11:53:10
}
}
【2】parse(String):
parse(String) 帮我们把字符串转化成时间
代码:
package DateT;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class SDFTparse {
public static void main(String[] args) throws Throwable{
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个时间(yyyy-MM-dd HH:mm:ss):");
String s=sc.nextLine();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parse = sdf.parse(s); //此方法需要抛出或者捕捉
System.out.println(parse); //输入2022-04-07 12:03:01
//输出:Thu Apr 07 12:03:01 CST 2022
sc.close();
}
}
4.计算时间差
计算思路:
1.格式化时间
2.先将字符串转化成long类型时间
3.计算毫秒级别时间差,取绝对值
4.毫秒级别时间差转成秒级别
5.秒级别时间差转成分钟级别
6.分钟级别时间差转化显示成xx小时xx分钟
代码:
package DateT;
import java.text.SimpleDateFormat;
import java.util.Date;
//计算时间差
public class dateSample {
public static void main(String[] args) throws Throwable {
String s1 = "2022-04-7 7:50:00"; // 开始时间
String s2 = "2022-04-7 12:10:00"; // 结束时间
//格式化时间
SimpleDateFormat sdf= new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
//将字符串转成时间形式
Date d1 = sdf.parse(s1);
Date d2 = sdf.parse(s2);
//计算时间差:先要获取时间毫秒形式(long类型) 再做差
long long1= d1.getTime();
long long2= d2.getTime();
long la=Math.abs(long2-long1);
// 秒级别时间差
long lm=la/1000;
//分级别时间差
long lf=lm/60;
//小时
long hours=lf/60;
//分钟
long minters=lf%60;
System.out.println("时间差为:"+hours+"小时"+minters+"分钟"); //时间差为:4小时20分钟
}
}

JavaSE常用类之时间类简述
浙公网安备 33010602011771号