欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java时间类型用法大全

程序员文章站 2022-06-30 19:28:36
System类的currentTimeMillis方法@Testpublic void a(){ //返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。 //成为时间戳 long l = System.currentTimeMillis(); System.out.println(l);}结果:1594882285191java.util.Date类和java.sql.Date类/* java.util.Date类 1.两个...

System类的currentTimeMillis方法

@Test
public void a(){
    //返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。
    //成为时间戳
    long l = System.currentTimeMillis();
    System.out.println(l);
}

结果:1594882285191

java.util.Date类和java.sql.Date类

/*
    java.util.Date类
    1.两个构造器:
     >构造器一:Date()
     >构造器二:创建指定毫秒数的Date对象
    2.两个方法:
     >toString():显示当前的年、月、日、时、分、秒
     >getTime():获取当前date对应的毫秒数
    3.java.sql.Date 对用数据库中的日期类型的变量
     >如何实例化
     >sql.date--->util.date
 */
    @Test
    public void test01(){
        //构造器一:Date()
        Date date = new Date();
        System.out.println(date.getTime());//1594882763377
        System.out.println(date.toString());//Thu Jul 16 14:59:23 CST 2020
        //构造器二:创建指定毫秒数的Date对象
        Date date1 = new Date(1594882763377L);
        System.out.println(date1.toString());//Thu Jul 16 14:59:23 CST 2020
    }
    @Test
    public void test2(){
        //创建 java.sql.Date date对象
        java.sql.Date date = new java.sql.Date(1594882763377L);
        System.out.println(date); //2020-07-16

        //将util.data转化为sql.data
        Date date1 = new Date();
        java.sql.Date date2 = new java.sql.Date(date1.getTime());
        System.out.println(date2);//2020-07-16
    }

SimpleDateFormat类

 /*
      SimpleDateFormat的使用:SimpleDateFormat对日期Date类的格式化和解析
        1.两个操作:
            1)格式化:日期--->字符串
            2)解析:格式化逆过程,字符串---> 日期
        2.SimpleDateFormat的实例化
        */  
@Test
    public void test() throws ParseException {
        //实例化SimpleDateFormat
        SimpleDateFormat sdf = new SimpleDateFormat();
        //格式化:日期--->字符串
        Date date = new Date();
        String format = sdf.format(date);
        System.out.println(format);// 20-7-16 下午3:20

        //解析  字符串--->日期
        String str = "20-7-16 下午3:20";
        Date parse = sdf.parse(str);
        System.out.println(parse); // Thu Jul 16 15:20:00 CST 2020

        //格式化指定格式
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        String format1 = sdf1.format(date);
        System.out.println(format1); //2020-07-16 03:25:57
        
        //解析(只认sdf1格式化格式的字符串)
        Date parse1 = sdf1.parse("2020-07-16 03:25:57");
        System.out.println(parse1);//Thu Jul 16 03:25:57 CST 2020
    }

Calender类

/*
    Calender日历类(抽象类)的使用  注:我今天是7月16号
 */ 
	@Test
    public void test1(){
        //1.实例化调用静态方法
        Calendar calendar = Calendar.getInstance();
        //常用方法
        //get 获得一些属性,比如今天是xx星期、xx月、xx年的第几天
        int i = calendar.get(Calendar.DAY_OF_MONTH); //今天是这一月的第几天
        int i1 = calendar.get(Calendar.DAY_OF_YEAR); //今天是这一月的第几天
        System.out.println(i); //16
        System.out.println(i1); //198
        //set 可以手动设置是多少天
        calendar.set(Calendar.DAY_OF_MONTH,22);
        int i3 = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println(i3); //22
        //add 在原有的基础上加上3天
        calendar.add(Calendar.DAY_OF_MONTH,3);
        int i4 = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println(i4); //25

        //getTime  日历类对象-->java.util.Date对象
        Date time = calendar.getTime();
        System.out.println(time); //Sat Jul 25 15:47:02 CST 2020
        //setTime  java.util.Date-->日历类对象
        Date d = new Date();
        calendar.setTime(d);
        int i5 = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println(i5);//16
    }

注意Calender类获取月份和星期时有偏移量
Java时间类型用法大全
以上为JDK8以前的时间类型API

Jdk8中新的日期时间API

LocalDate、LocalTime、LocalDateTime

/*
 jdk 8中日期时间API测试
    LocalDate、LocalTime、LocalDateTime 的使用  注:我今天是7月16号
 */
@Test
    public void test1(){
        //实例化 now(获取当前的日期,时间,日期时间)
        LocalDate localDate = LocalDate.now();
        LocalTime localTime = LocalTime.now();
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDate); //2020-07-16
        System.out.println(localTime); //16:04:54.827
        System.out.println(localDateTime); //2020-07-16T16:04:54.827

        //of() 设置指定的年月日,时分秒
        LocalDateTime localDateTime1 = LocalDateTime.of(2020, 10, 6, 13, 23, 43);
        System.out.println(localDateTime1); //2020-10-06T13:23:43

        //getXxx()
        System.out.println(localDateTime.getDayOfMonth()); //16 今天是本月第几天
        System.out.println(localDateTime.getDayOfWeek()); //THURSDAY 今天是星期几
        System.out.println(localDateTime.getMonth()); //JULY  本月是几月
        System.out.println(localDateTime.getMonthValue()); //7 本月是几月转化为阿拉伯数字

    }

JDK8中还有两个Instant类和DateTimeFormatter类没进行演示。

本文地址:https://blog.csdn.net/weixin_43373316/article/details/107395527