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分钟
     }
}
posted @   别捏小祎脸了  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示
主题色彩