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