zoukankan      html  css  js  c++  java
  • java 之 时间类总结

    1、java.util.Date

    java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。

    Date()使用当前日期和时间来初始化对象。

    Date(long millisec),该参数是从1970年1月1日起的毫秒数.

    获取当前日期时间

    public class DataTest {
        public static void main(String[] args) {
            Date date = new Date();
            System.out.println(date);//Tue Jul 07 22:54:59 CST 2020
            System.out.println(date.getTime());//1594133756181
            System.out.println(new Date(System.currentTimeMillis()));//Tue Jul 07 23:35:25 CST 2020
         
        }
    }

    Date类常用方法

    2、java.sql.Date

    包含年月日、对应sql中的DATE类型。是java.util.Date的子类但是只有一个构造函数。

    Date(long millisec),该参数是从1970年1月1日起的毫秒数.

    获取当前时间

    public class SqlDate {
        public static void main(String[] args) {
            Date date = new Date(System.currentTimeMillis());
            System.out.println(date);
            System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(date));
    //        2020-07-07
    //        2020-07-07 11:41:59
        }
    }

    3、java.sql.Time

    包含时分秒为,对应SQL中TIME类型。与java.sql.Date一样有一个有参构造函数。

    Time(long millisec),该参数是从1970年1月1日起的毫秒数.

    获取当前日期时间

    public class SqlDate {
        public static void main(String[] args) {
            Time time = new Time(System.currentTimeMillis());
            System.out.println(time);
            System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(time));
    //        23:53:51
    //        2020-07-07 11:53:51
    
        }
    }

    4、java.sql.Timestamp

    时间戳,对应SQL中的TIMESTAMP类型,精确到纳秒级别。

    Timestamp(long millisec),该参数是从1970年1月1日起的毫秒数.

    获取当前日期时间

    public class SqlDate {
        public static void main(String[] args) {
            Timestamp timestamp =new Timestamp(System.currentTimeMillis());
            System.out.println(timestamp);
            System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(timestamp));
    //        2020-07-07 23:58:04.907
    //        2020-07-07 11:58:04
    
        }
    }

    5、java.text.SimpleDateFormat

    SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行。

    将时间字符串转化为Date再格式化

    public class DateFormatTest {
        public static void main(String[] args) throws ParseException {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
            Date date = sdf.parse("2020年05月20日 13:14:58");
            System.out.println(date);
            System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(date));
    //        Wed May 20 13:14:58 CST 2020
    //        2020-05-20 01:14:58
        }
    }

    日期和时间格式化编码

    6、java.util.Calendar

    日历类,大多用来获取时间的特殊属性,比如年份,月份,星期几。

    Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些。

    Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。

    jdk1.8新增了创建方法。

    public class CalendarTest {
        public static void main(String[] args) {
            //获取当前时间的Calendar对象,可以通过set方法来设置时间
            Calendar calendar = Calendar.getInstance();
            System.out.println(calendar.getTime());
            //JDK1.8 创建一个指定日期的Calendar对象
            Calendar calendar1 = new Calendar.Builder().setDate(2020,05,20).build();
            System.out.println(calendar1.getTime());
            System.out.println(calendar1.get(Calendar.YEAR));
            System.out.println(calendar1.get(Calendar.MONTH));
            System.out.println(calendar1.get(Calendar.DATE));
            System.out.println(calendar1.get(Calendar.HOUR_OF_DAY));
            System.out.println(calendar1.get(Calendar.MINUTE));
            System.out.println(calendar1.get(Calendar.SECOND));
            System.out.println(calendar1.get(Calendar.DAY_OF_WEEK));
    //        Wed Jul 08 00:29:17 CST 2020
    //        Sat Jun 20 00:00:00 CST 2020
    //        2020
    //        5
    //        20
    //        0
    //        0
    //        0
    //        7
    
        }
    }

    Calendar类对象字段类型

    7、java.util.GregorianCalendar

    Calendar类实现了公历日历,GregorianCalendar是Calendar类的一个具体实现。

    Calendar 的getInstance()方法返回一个默认用当前的语言环境和时区初始化的GregorianCalendar对象。

    GregorianCalendar定义了两个字段:AD和BC。这是代表公历定义的两个时代.。

    构造方法

     常用方法

     

    java8开始有的新的操作时间的类

    8、java.time.LocalDate

    LocalDate提供年月日而不提供时分秒信息,它是不可变类且线程安全的。它经常被用于展示year-month-day,day-of-year,day-of-week,week-of-year等格式的信息。

    public class LocalDates {
        public static void main(String[] args) {
            LocalDate ld = LocalDate.now();//获取当前时间对象
            System.out.println(ld);
            System.out.println(ld.getYear());//那一年
            System.out.println(ld.getMonth());//那个月
            System.out.println(ld.getDayOfMonth());//几号
            System.out.println(ld.getDayOfWeek());//周几
            System.out.println(ld.getDayOfYear());//一年中第多少天
            System.out.println(ld.isLeapYear());//是否闰年
    //        2020-07-08
    //        2020
    //        JULY
    //        8
    //        WEDNESDAY
    //        190
    //        true
    
        }
    
    }

    9、java.time.Time

    提供时分秒不提供年月日,也是线程安全并且不可变类。它经常被用于展示hour-minute-second格式的信息。可以对时间进行加减等操作。

    public class LocalTimeTest {
        public static void main(String[] args) {
            LocalTime localTime = LocalTime.now();//获取当前时间
            System.out.println(localTime);
            int hour = localTime.getHour();//获取小时
            System.out.println(hour);
            LocalTime addTwoHours = localTime.plusHours(2l);//增加2小时
            System.out.println(addTwoHours);
            LocalTime reduceTOneHour = localTime.minusHours(1L);//减少2小时
            System.out.println(reduceTOneHour);
    //        01:05:20.498
    //        1
    //        03:05:20.498
    //        00:05:20.498
    
        }
    }

    10、java.time.LocalDateTime

    包含年月日时分秒,精确到纳秒级别,同样是线程安全并且不可变类。它可以操作时间中的年月日时分秒并且可以获取其中的属性。

    public class LocalDateTimeTest {
        public static void main(String[] args) {
            LocalDateTime localDateTime = LocalDateTime.now();
            System.out.println(localDateTime);
            //LocalDateTime 和 LocalDate, LocalTime 相互转换
            LocalDate localDate = localDateTime.toLocalDate();
            System.out.println(localDate);
            LocalTime localTime = localDateTime.toLocalTime();
            System.out.println(localTime);
    //        2020-07-08T01:13:36.274
    // 2020-07-08
    // 01:13:36.274
      }
    }

    11、java.time.Instant

    时间戳,就包含年月日时分秒,精确到纳秒级别,同样是线程安全并且不可变类。

    public class InstantTest {
        public static void main(String[] args) {
            Instant instant = Instant.now();
            System.out.println(instant);
            //2020-07-07T17:16:23.233Z
        }
    }

    12、java.time.Duration

    时间段,同样是线程安全并且不可变类。

    public class DurationTest {
        public static void main(String[] args) {
            Duration duration = Duration.between(LocalTime.of(10,14,59), LocalTime.of(13,14,59));
            long toDays = duration.toDays();
            long toHours = duration.toHours();
            System.out.println(toDays);
            System.out.println(toHours);
    //        0
    // 3
    } }
  • 相关阅读:
    XML
    DAO
    JDBC
    事物、视图、索引、备份和恢复
    用户
    高级查询2
    高级查询1
    数据库设计
    初识MySQL
    古代和现在的区别Hashtable和HashMap
  • 原文地址:https://www.cnblogs.com/zero-vic/p/13264550.html
Copyright © 2011-2022 走看看