时间日期类

  • 系统级的时间日期获取
  • Date类
  • 构造方法
  • 常用方法
  • 日历类:Calendar
  • 常用方法:
  • 相互转换
  • Date--->Calendar
  • Calendar--->Date
  • 日期格式化:SimpleDateFormat
  • 常用构造方法
  • Date和String的相互转换
  • Date---->String
  • String---->Date
  • java8以后优秀的时间日期类:


系统级的时间日期获取

  • 返回以毫秒为单位的当前时间,返回当前时间与 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位测量)。
  • 常用来计算一段代码运行所花费的时间
long System.currentTimeMillis();

Date类

  • 表示特定的瞬间,精确到毫秒 ,用于表示日期时间。

构造方法

•Date()
    Date date =new Date();
•Date(long date)
    Date date = new Date(longTime);

常用方法

•boolean after(Date when);  给定时间是否在当前时间以后   当前date大于when
•boolean before(Date when);  给定时间是否在当前时间以前  当前date小于when
•String toString();   转化为字符串

日历类:Calendar

  • Calendar 类是一个抽象类,用于描述一个日历。这个类不能直接初始化,但有个类方法getInstance() 用于创建Calendar对象。使用单例模式实现
static Calendar getInstance(); 使用单例模式来获取此类的一个对象
    Calendar ca = Calendar.getInstance();

常用方法:

•int get(int field); 获取指定日期单位的具体值。
    int year = ca.get(Calendar.YEAR);
    int day = ca.get(Calendar.DAY_OF_MONTH);
    int month = ca.get(Calendar.MONTH)+1;
    System.out.println(year+"年"+month+"月"+day+"日");
    
•Date getTime()  
    转化为Date对象
    
•void set(int field, int value);
    设置指定日期单位的值

•void set(year, month, date);
    设置指定的年月日
    
•void setTime(Date date);
    获取一个来自Date实例的时间
    
•void setTimeInMillis(long millis);
    利用时间戳来设置时间
    
•void add(int field, int value);  
    为日期单位加上一定的值

相互转换

Date—>Calendar

//Date--->Calendar
Date date = new Date();
Calendar ca = Calendar.getInstance();
ca.setTime(date);

Calendar—>Date

//Calendar----> Date
Date time = ca.getTime();

日期格式化:SimpleDateFormat

  • DateFormat抽象类提供了格式化日期的方法, SimpleDateFormat是它的简单实现类。可以将日期格式化成指定格式的字符串;也可将指定格式字符串格式化为日期

常用构造方法

•SimpleDateFormat(String pattern);
    SimpleDateFormat("yyyy-MM-dd")
Date date= new Date();
SimpleDateFormat da = new SimpleDateFormat("yyyy-MM-dd");
String format = da.format(date);
System.out.println(format);

Date和String的相互转换

Date---->String

Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日,HH点mm分ss秒,W周,E");
String format = sdf.format(date);
System.out.println(format);

String---->Date

String time = "1990-01-01";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ss");
Date parse = sdf.parse(time);
System.out.println(parse);

java8以后优秀的时间日期类:

LocalDate :表示不带时间的日期
LocalTime:表示不带日期的时间
LocalDateTime:表示日期时间类
ZoneId:时区
Instant:表示时间戳
Clock:表示当前时区下某个瞬时时间
Duration:表示一个精确的时间跨度,以毫秒为单位
Period:表示一个精确的时间跨度,以年月日为单位
DateTimeFormat:进行日期格式化输出