Date类
概念:
Date 类表示系统特定的时间,可以精确到毫秒。Date 对象表示时间的默认顺序是星期、月、日、小时、分、秒、年。
构造方法:
Date():此种形式表示分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),使用该构造方法创建的对象可以获取本地的当前时间。
Date(long date):此种形式表示从 GMT 时间(格林尼治时间)1970 年 1 月 1 日 0 时 0 分 0 秒开始经过参数 date 指定的毫秒数。
案例:
package com.Date;
import java.util.Date;
public class DateTest01 {
public static void main(String[] args) {
//日期在开发中常用来存储 生日 下单时间 付款码时间 审批时间等
//类Date 表示特定的瞬间 精确到秒
Date date1=new Date();//获取当前基于环境的时间
System.out.println(date1);
long time = date1.getTime();//1970 年 1 月 1 日 0 时 0 分 0 秒开始经过参数 date 指定的毫秒数。
System.out.println(time);
Date date2 = new Date(60000);
System.out.println(date2);
}
}
常用方法 :
Date类中的常用方法
方法 | 描述 | |
boolean after(Date when) |
| |
boolean before(Date when) |
| |
boolean equals(Object obj) |
| |
long getTime() | 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来,此 Date 对象表示的毫秒数 | |
String toString() |
| |
SimpleDateFormat类
概念:
SimpleDateFormat类是一个抽象类,构造方法接受一个字符串的参数,表示它当前的日期格式。 它是允许你选择任何用户自定义日期和时间的格式,介绍了它的日期和时间的格式化编码。 实现List接口,它主要有两个常用的类分别是ArrayList类、LinkedList类。
实例化:
// 空参构造器,采用默认格式
SimpleDateFormat sdf = new SimpleDateFormat();
// 带参指定格式的构造器
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
y:年
M:月
d:日
h:时
m:分
s:秒
案例:
package com.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.SimpleFormatter;
public class DateFormatTest {
public static void main(String[] args) throws ParseException {
//SimpleDateFormat 用来实现 日期 和 字符串 之间的相互转换
SimpleDateFormat sdf = new SimpleDateFormat("yyy/MM/dd HH:mm:ss");//创建日期格式化类的对象,指定格式符号
Date date1 = new Date();//获取当前系统时间
//把 日期 转化成指定格式的 字符串
String format = sdf.format(date1);
System.out.println(format);
//把指定字符串 转化成日期
String time = "2000/10/20 8:20:38";
Date date2 = sdf.parse(time);
System.out.println(date2);
}
}
Calendar 类
概念:
Calendar 类是一个抽象类,它为特定瞬间与 YEAR、MONTH、DAY_OF—MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(如获得下星期的日期) 提供了一些方法。
创建 Calendar 对象不能使用 new 关键字,因为 Calendar 类是一个抽象类,但是它提供了一个 getInstance() 方法来获得 Calendar类的对象。getInstance() 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化。
Calendar 类中定义了许多常量,分别表示不同的意义。
- Calendar.YEAR:年份。
- Calendar.MONTH:月份。
- Calendar.DATE:日期。
- Calendar.DAY_OF_MONTH:日期,和上面的字段意义完全相同。
- Calendar.HOUR:12小时制的小时。
- Calendar.HOUR_OF_DAY:24 小时制的小时。
- Calendar.MINUTE:分钟。
- Calendar.SECOND:秒。
- Calendar.DAY_OF_WEEK:星期几。
案例:
package com.Date;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
public class CalendarTest02 {
public static void main(String[] args) {
//Calendar 类是一个抽象类 可以通过Calender 的 getInstance 方法返回一个Calendar对象
Calendar calendar = Calendar.getInstance();
Date date1 = calendar.getTime();//获取当前系统时间
System.out.println(date1);
long timeInMills = calendar.getTimeInMillis();
System.out.println("当前时间的毫秒值:"+timeInMills);
TimeZone timeZone = calendar.getTimeZone();
System.out.println("时区:"+timeZone);
//get 方法可以根据 指定的日历字段 获取时间对应的值
int year = calendar.get(Calendar.YEAR);
System.out.println("年份:"+year);//哪年
int month = calendar.get(Calendar.MONTH);
System.out.println("月份:"+month+1);//0-11 表示1-12月 哪月
int date = calendar.get(Calendar.DAY_OF_MONTH);//哪月的第几天
System.out.println("日期:"+date);
int dayofyear = calendar.get(Calendar.DAY_OF_YEAR);//哪年的第几天
System.out.println("本年的第:"+dayofyear+"天");
System.out.println("---------------");
//可以获取 指定日期
calendar.set(2000,9,28,15,59,61);
Date date2 = calendar.getTime();
System.out.println(date2);
}
}