JDK7时间相关类
- 一、概述
- 二、Date类
- 1.构造函数
- 2.常用函数
- 1️⃣格式
- 2️⃣实例
- 三、 SimpleDateFormat类
- 1.概述
- 2.构造方法
- 3.常用方法
- 1️⃣格式
- 2️⃣实例
- 四、Calendar类
- 1.概述
- 2.使用方法
- 3.常用方法
- 4.实例
- 五、结语
一、概述
本文主要介绍JDK7中的时间相关类
二、Date类
1.构造函数
public Date()
:从运行程序的此时此刻到时间原点经历的毫秒值,转换成Date对象,分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。public Date(long date)
:将指定参数的毫秒值date,转换成Date对象,分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。
2.常用函数
1️⃣格式
public long getTime()
把日期对象转换成对应的时间毫秒值。public void setTime(long time)
把方法参数给定的毫秒值设置给日期对象
2️⃣实例
public class DateDemo02 {
public static void main(String[] args) {
//创建日期对象
Date d = new Date();
long time = System.currentTimeMillis();
d.setTime(time);
System.out.println(d);
}
}
Thu Jan 12 21:58:42 CST 2023
三、 SimpleDateFormat类
1.概述
java.text.SimpleDateFormat
是日期/时间格式化类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换
2.构造方法
由于DateFormat为抽象类,不能直接使用,所以需要常用的子类java.text.SimpleDateFormat
。这个类需要一个模式(格式)来指定格式化或解析的标准。构造方法为:
public SimpleDateFormat(String pattern)
:用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。参数pattern是一个字符串,代表日期时间的自定义格式。
3.常用方法
1️⃣格式
-
public String format(Date date)
:将Date对象格式化为字符串 -
public Date parse(String source)
:将字符串解析为Date对象
2️⃣实例
package com.itheima.a01jdk7datedemo;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo3 {
public static void main(String[] args) throws ParseException {
String str = "2023-11-11 11:11:11";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(str);
System.out.println(date.getTime());
}
}
1699672271000
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo4 {
public static void main(String[] args) {
SimpleDateFormat sdf1 = new SimpleDateFormat();
Date d1 = new Date(0L);
String str1 = sdf1.format(d1);
System.out.println(str1);//1970/1/1 上午8:00
//2.利用带参构造创建simpleDateFormat对象,指定格式
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
String str2 = sdf2.format(d1);
System.out.println(str2);//1970年01月01日 08:00:00
}
}
四、Calendar类
1.概述
java.util.Calendar
类表示一个“日历类”,可以进行日期运算。它是一个抽象类,不能创建对象,我们可以使用它的子类:java.util.GregorianCalendar类
2.使用方法
有两种方式可以获取GregorianCalendar对象
-
直接创建GregorianCalendar对象
-
通过Calendar的静态方法getInstance()方法获取GregorianCalendar对象
3.常用方法
方法名 | 说明 |
---|---|
public static Calendar getInstance() | 获取一个它的子类GregorianCalendar对象。 |
public int get(int field) | 获取某个字段的值。field参数表示获取哪个字段的值, 可以使用Calender中定义的常量来表示: Calendar.YEAR : 年 Calendar.MONTH :月 Calendar.DAY_OF_MONTH:月中的日期 Calendar.HOUR:小时 Calendar.MINUTE:分钟 Calendar.SECOND:秒 Calendar.DAY_OF_WEEK:星期 |
public void set(int field,int value) | 设置某个字段的值 |
public void add(int field,int amount) | 为某个字段增加/减少指定的值 |
4.实例
get方法
import java.util.Calendar;
public class Demo5 {
public static void main(String[] args) {
//1.获取一个GregorianCalendar对象
Calendar instance = Calendar.getInstance();//获取子类对象
//2.打印子类对象
System.out.println(instance);
//3.获取属性
int year = instance.get(Calendar.YEAR);
int month = instance.get(Calendar.MONTH) + 1;//Calendar的月份值是0-11
int day = instance.get(Calendar.DAY_OF_MONTH);
int hour = instance.get(Calendar.HOUR);
int minute = instance.get(Calendar.MINUTE);
int second = instance.get(Calendar.SECOND);
int week = instance.get(Calendar.DAY_OF_WEEK);
System.out.println(year + "年" + month + "月" + day + "日" + hour + ":" + minute + ":" + second);
System.out.println(getWeek(week));
}
private static String getWeek(int week) {
String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
return weekArray[week - 1];
}
java.util.GregorianCalendar[time=1673534238973,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id=“Asia/Shanghai”,offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2023,MONTH=0,WEEK_OF_YEAR=2,WEEK_OF_MONTH=2,DAY_OF_MONTH=12,DAY_OF_YEAR=12,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=10,HOUR_OF_DAY=22,MINUTE=37,SECOND=18,MILLISECOND=973,ZONE_OFFSET=28800000,DST_OFFSET=0]
2023年1月12日10:37:18
星期四
set方法
import java.util.Calendar;
public class Demo6 {
public static void main(String[] args) {
//设置属性——set(int field,int value):
Calendar c1 = Calendar.getInstance();//获取当前日期
c1.set(Calendar.YEAR, 2002);
c1.set(Calendar.MONTH, 10 - 1);//转换为Calendar内部的月份值
c1.set(Calendar.DAY_OF_MONTH, 24);
int w = c1.get(Calendar.DAY_OF_WEEK);
System.out.println("我出生那天是:" + getWeek(w));
}
//查表法,查询星期几
public static String getWeek(int week) {//w = 1 --- 7
String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
//查表
return weekArray[week - 1];
}
}
我出生那天是:星期四
add方法
import java.util.Calendar;
public class Demo7 {
public static void main(String[] args) {
//计算31天以后是哪年哪月哪日,星期几?
Calendar c2 = Calendar.getInstance();//获取当前日期
int y1 = c2.get(Calendar.YEAR);
int m1 = c2.get(Calendar.MONTH) + 1;//转换为实际的月份
int d1 = c2.get(Calendar.DAY_OF_MONTH);
int wk1 = c2.get(Calendar.DAY_OF_WEEK);
System.out.println("今天是:" + y1 + "年" + m1 + "月" + d1 + "日" + getWeek(wk1));
c2.add(Calendar.DAY_OF_MONTH, 31);//日期加31
int y = c2.get(Calendar.YEAR);
int m = c2.get(Calendar.MONTH) + 1;//转换为实际的月份
int d = c2.get(Calendar.DAY_OF_MONTH);
int wk = c2.get(Calendar.DAY_OF_WEEK);
System.out.println("31天后是:" + y + "年" + m + "月" + d + "日" + getWeek(wk));
}
//查表法,查询星期几
public static String getWeek(int week) {//w = 1 --- 7
//做一个表(数组)
String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
//查表
return weekArray[week - 1];
}
}
今天是:2023年1月12日星期四
31天后是:2023年2月12日星期日
五、结语
接下来将讲述JDK8时间相关类