目录
一、Date
二、SimleDateFormate类
作用
练习一
练习二
三、Calendar类
概述
Calendar小结
一、Date
构造方法 | 说明 |
public Date() | 创建Date对象,表示一个时间 |
public Date(long date) | 创建Date对象,表示指定时间 |
public void setTime(long time) | 设置/修改时间毫秒值 |
public long getTime() | 获取时间对象的毫秒值 |
直观看可能有点不理解,那就上代码:
import java.util.Date;public class dateDemo {public static void main(String[] args) {//1、创建一个表示时间的对象Date d1 = new Date();//打印结果为系统时间(即电脑上显示的时间)System.out.println("电脑上显示的时间:");System.out.println(d1);//2、创建对象表示个指定的时间Date d2 = new Date(0L);//这个0表示从时间结点开始过了0毫秒的时间System.out.println("过了_时间的输出:");System.out.println(d2);//3、setTime()表示修改时间d2.setTime(1000L);System.out.println("setTime()的输出:");System.out.println(d2);//getTime()获取时间的毫秒对象long time = d2.getTime();System.out.println("获取时间的毫秒为:");System.out.println(time);}
}
运行截图如下:
二、SimleDateFormate类
作用:
1、格式化:把时间变成我们喜欢的格式
2、解析:把字符串便是的时间变成Date对象
构造方法 | 说明 |
public SimpleDateFormate() | 构造一个类,使用默认格式 |
public SimpleDateFormat(String pattern) | 构造一个类,使用指定格式 |
常用方法 | 说明 |
public final String formate(Date date) | 格式化(日期对象→字符串) |
oublic Date parse(String source) | 解析(字符串→日期对象) |
补:格式化的时间形式的常用的模式对应关系如下
y:年 M:月 d:日 H:时 m:分 s:秒(小写!)
eg.2023-11-11 13:27:06→yyyy-MM-dd HH:mm:ss
2023年11月11日 13:27:06→yyyy年MM月dd日 HH:mm:ss
写个题来练练手:
练习一:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class simpledateformate {public static void main(String[] args) throws ParseException {//1.利用空参构造创建simpleDateFormat对象,默认格式SimpleDateFormat sdf1 = new SimpleDateFormat();Date date1 = new Date(0L);String newDate1 = sdf1.format(date1);System.out.println(newDate1);//2.利用带参构造创建simpleDateFormat对象,指定格式SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd月 HH:mm:ss");String newDate2 = sdf2.format(date1);System.out.println(newDate2);//星期可以用E表示SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy年MM月dd月 HH:mm:ss E");String newDate3 = sdf3.format(date1);System.out.println(newDate3);//解析://定义一个字符串String str = "2022.11.11 11:11:11";//利用空参构造创建simpleDateFormat对象SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");Date date2 = sdf4.parse(str);System.out.println(date2);}
}
代码运行结果如下:
提示:大家的运行环境默认格式可能各不一样,知道这个知识点就行
练习二:
题目:
假设:你的出生年月日为:2000-11-11。请用字符串表示这个数据,并将其转换为:2000年11月11日。
代码如下:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class simpledateformateDEMO1 {public static void main(String[] args) throws ParseException {/*假设,你的出生年月日为: 2000-11-11*请用字符串表示这个数据,并将其转换为:2000年11月11日*/String str = "2000-11-11";SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");Date date = sdf1.parse(str);SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");String date1 = sdf2.format(date);System.out.println(date1);}
}
输入结果截图为:
三、Calendar类
概述:
1、Calendar代表了系统当前时间的日历对象,可以单独修改,获取时间中的年,月,日。
2、细节:Calendar是一个抽象类,不能直接创建对象
3、获取Calendar日历类对象的方法
方法名 | 说明 |
public static Calendar getInstance | 获取当前时间的日历对象 |
4、Calendar常用方法
方法名 | 说明 |
public final Date getTime() | 获取日期对象 |
public final setTime(Date date) | 给日历设置日期对象 |
public long getTimeInMills() | 得到时间毫秒值 |
public void setTimeInMills(long mills) | 取日历中的某个字段信息 |
public void set(int field, int value) | 修改日历的某个字段信息 |
public int get(int field) | 取日历中的某个字段信息 |
public void add(int field, int amount) | 为某个字段增加或减少指定值 |
代码及相关注意事项如下:
import java.util.Calendar;
import java.util.Date;public class CalendarDemo {public static void main(String[] args) {//1、获取日历对象/*细节1:* Calendar不能直接new,而是通过静态对象(getInstance)来直接获取子类对象* 细节2:* 月份:范围:0~11。如果获取出来的是0,那么实际上就是一月* 星期:在外国人眼里,一周当中的第一天就是星期日。* 所以1(星期日),2(星期一),3(星期二),4(星期三),5(星期四),6(星期五),7(星期六)* 底层原理:* 会根据系统的不同时区来获取不同的日历对象(默认当前时间),会把时间中的纪元,年,月,日,时,分,秒等都放到一个数组当中*/Calendar c = Calendar.getInstance();System.out.println(c);System.out.println("---------------------------------");//修改日历中的时间//1、通过date修改Date d = new Date(0L);c.setTime(d);System.out.println(c);System.out.println("---------------------------------");//2、通过毫秒值进行修改Calendar c1 = Calendar.getInstance();Date time = c1.getTime();c.setTime(time);System.out.println(c);System.out.println("---------------------------------");//Java在Calendar类中,把索引对应的数字定义为了常量/* 1,表示年YEAR* 2,表示月MONTH* 3,表示一年中的第几周WEEK_OF_YEAR* 4,表示一个月中当中的第几周WEEK_OF_MONTH* 5,表示一个月当中的第几天DATE或者DAY_OF_MONTH* 6,表示一年当中的第几天DAY_OF_YEAR* 7,表示一周当中的第几天DAY_OF_WEEK*/int year = c.get(Calendar.YEAR);//因为月份是0~11所以在原来的基础上+1就是我们看到的日历上的月份了int month = c.get(Calendar.MONTH) + 1;int day = c.get(Calendar.DATE);int week = c.get(Calendar.DAY_OF_WEEK);System.out.println(year + "年" + month + "月" + day + "日" + weekValue(week));System.out.println("---------------------------------");//修改日历的方法c.set(Calendar.YEAR,2000);int year1 = c.get(Calendar.YEAR);int month1 = c.get(Calendar.MONTH) + 1;int day1 = c.get(Calendar.DATE);int week1 = c.get(Calendar.DAY_OF_WEEK);System.out.println(year1 + "年" + month1 + "月" + day1 + "日" + weekValue(week1));}//定义一个方法,将week值传入,输出星期几public static String weekValue(int index){String[] week = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};return week[index];}}
注:前三条虚线内的内容代码截图如下:
代码总截图如下:
Calendar小结:
1、Calendar表示一个时间的日历对象。
2、通过getInstance方法后去对象
3、常见方法:
setXxx:修改 getXxx:获取 add:在原有的基础上进行增加或减少
4、细节点:
1·日历中月份的范围:0~11
2·日历中星期的特点:一周当中的第一天是星期日