java开发笔记二(Java时间日期的处理:Java Date类、Calendar类)


在java获取当前时间,可以使用 java.util.Date 类和 java.util.Calendar 类完成。其中,Date 类主要封装了系统的日期和时间的信息,Calendar 类则会根据系统的日历来解释 Date 对象。下面详细介绍这两个类的具体使用

一、Date类:

Date date = new Date();//初始化Date对象

1 import java.util.Date;
2 public class test1 {
3     public static void main(String[] args) {
4         Date date = new Date();//初始化Date对象
5         System.out.println(date.toString());
      System.out.println(date);//同上//获取当前日期时间,其中toString()方法是Object类中的:将调用该方法的的对象转化成字符串;
6     }
7 }

Java格式化日期:

java格式化日期有两种:DateFormat类和SimpleDateFormat类,下面就目前个人理解进行简单的说明:

DateFormat:

  1. DateFormat是抽象类,在创建DateFormat对象时不能用new,需使用静态方法getDateInstance();代码如下:
    DateFormat df = DateFormat.getDatelnstance();//创建 DateFormat 对象
  2. 创建完对象之后我们可以调用对象中的一些方法对日期进行格式化; 

SimpleDateFormat:

SimpleDateFormat是DateFormat的子类,它允许进行格式化(日期→文本)、解析(文本→日期);创建对象:

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

 1.当前时间(系统)格式转换为指定格式(字符串)

1 import java.text.SimpleDateFormat;
2 import java.util.Date;
3 public class test1 {
4     public static void main(String[] args) {
5         Date date = new Date();//初始化Date对象,获取当前日期
6         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//创建SimpleFormatDate对象,指定格式化格式
7         System.out.println(sdf.format(date));//将当前时间格式转化为指定格式
8     }
9 }

输出结果:

Sun Jan 31 11:02:16 GMT+08:00 2021
2021-01-31

2.将给定格式转换为系统时间格式

 1 import java.text.ParseException;
 2 import java.text.SimpleDateFormat;
 3 import java.util.Date;
 4 
 5 public class test1 {
 6     public static void main(String[] args) throws ParseException {
 7         //给定字符串-日期
 8         String dateStr="2020-12-21";
 9         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
10         Date date=new Date();
11         try {
12             date = sdf.parse(dateStr);//parse()转化为系统时间
13         } catch (ParseException e) {
14             e.printStackTrace();
15         }
16         System.out.println(date);
17     }
18 }

输出结果:

Mon Dec 21 00:00:00 GMT+08:00 2020

二、Calendar类:

 Calendar类的功能要比Date类强大很多,可以方便的进行日期的计算,获取日期中的信息时考虑了时区等问题;

1.a.创建代表当前日期的Calendar对象:Calendar c = Calendar.getInstance();//默认是当前日期

 b.使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。

Calendar c1 = Calendar.getInstance();

c1.set(2014, 5 - 1, 9);//创建一个代表2014年5月9日的Calendar对象

2.Add设置(可用与计算时间)

Calendar c1 = Calendar.getInstance();
 //把c1对象的日期加上10,也就是c1所表的日期的10天后的日期,其它所有的数值会被重新计算
c1.add(Calendar.DATE, 10);
//把c1对象的日期加上-10,也就是c1所表的日期的10天前的日期,其它所有的数值会被重新计算
c1.add(Calendar.DATE, -10);

日期类对象之间转化: