我的编程空间,编程开发者的网络收藏夹
学习永远不晚

从零开始学习 Java:简单易懂的入门指南之时间类(十七)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

从零开始学习 Java:简单易懂的入门指南之时间类(十七)

第一章 Date类

1.1 Date概述

java.util.Date`类 表示特定的瞬间,精确到毫秒。

继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,我们重点看以下两个构造函数

  • public Date():从运行程序的此时此刻到时间原点经历的毫秒值,转换成Date对象,分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
  • public Date(long date):将指定参数的毫秒值date,转换成Date对象,分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。

tips: 由于中国处于东八区(GMT+08:00)是比世界协调时间/格林尼治时间(GMT)快8小时的时区,当格林尼治标准时间为0:00时,东八区的标准时间为08:00。

简单来说:使用无参构造,可以自动设置当前系统时间的毫秒时刻;指定long类型的构造参数,可以自定义毫秒时刻。例如:

import java.util.Date;public class Demo01Date {    public static void main(String[] args) {        // 创建日期对象,把当前的时间        System.out.println(new Date()); // Tue Jan 16 14:37:35 CST 2020        // 创建日期对象,把当前的毫秒值转成日期对象        System.out.println(new Date(0L)); // Thu Jan 01 08:00:00 CST 1970    }}

tips:在使用println方法时,会自动调用Date类中的toString方法。Date类对Object类中的toString方法进行了覆盖重写,所以结果为指定格式的字符串。

1.2 Date常用方法

Date类中的多数方法已经过时,常用的方法有:

  • public long getTime() 把日期对象转换成对应的时间毫秒值。
  • public void setTime(long time) 把方法参数给定的毫秒值设置给日期对象

示例代码

public class DateDemo02 {    public static void main(String[] args) {        //创建日期对象        Date d = new Date();                //public long getTime():获取的是日期对象从1970年1月1日 00:00:00到现在的毫秒值        //System.out.println(d.getTime());        //System.out.println(d.getTime() * 1.0 / 1000 / 60 / 60 / 24 / 365 + "年");        //public void setTime(long time):设置时间,给的是毫秒值        //long time = 1000*60*60;        long time = System.currentTimeMillis();        d.setTime(time);        System.out.println(d);    }}

小结:Date表示特定的时间瞬间,我们可以使用Date对象对时间进行操作。

第二章 SimpleDateFormat类

java.text.SimpleDateFormat 是日期/时间格式化类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。

  • 格式化:按照指定的格式,把Date对象转换为String对象。
  • 解析:按照指定的格式,把String对象转换为Date对象。

2.1 构造方法

由于DateFormat为抽象类,不能直接使用,所以需要常用的子类java.text.SimpleDateFormat。这个类需要一个模式(格式)来指定格式化或解析的标准。构造方法为:

  • public SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。参数pattern是一个字符串,代表日期时间的自定义格式。

2.2 格式规则

常用的格式规则为:

标识字母(区分大小写)含义
y
M
d
H
m
s

备注:更详细的格式规则,可以参考SimpleDateFormat类的API文档。

2.3 常用方法

DateFormat类的常用方法有:

  • public String format(Date date):将Date对象格式化为字符串。

  • public Date parse(String source):将字符串解析为Date对象。

    package com.itheima.a01jdk7datedemo;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class A03_SimpleDateFormatDemo1 {    public static void main(String[] args) throws ParseException {                //1.定义一个字符串表示时间        String str = "2023-11-11 11:11:11";        //2.利用空参构造创建simpleDateFormat对象        // 细节:        //创建对象的格式要跟字符串的格式完全一致        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        Date date = sdf.parse(str);        //3.打印结果        System.out.println(date.getTime());//1699672271000    }    private static void method1() {        //1.利用空参构造创建simpleDateFormat对象,默认格式        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        //课堂练习:yyyy年MM月dd日 时:分:秒 星期    }}

小结:DateFormat可以将Date对象和字符串相互转换。

2.4 练习1(初恋女友的出生日期)

//1.可以通过2000-11-11进行解析,解析成一个Date对象String str = "2000-11-11";//2.解析SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");Date date = sdf1.parse(str);//3.格式化SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");String result = sdf2.format(date);System.out.println(result);

2.5 练习2(秒杀活动)

//1.定义字符串表示三个时间String startstr = "2023年11月11日 0:0:0";String endstr = "2023年11月11日 0:10:0";String orderstr = "2023年11月11日 0:01:00";//2.解析上面的三个时间,得到Date对象SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");Date startDate = sdf.parse(startstr);Date endDate = sdf.parse(endstr);Date orderDate = sdf.parse(orderstr);//3.得到三个时间的毫秒值long startTime = startDate.getTime();long endTime = endDate.getTime();long orderTime = orderDate.getTime();//4.判断if (orderTime >= startTime && orderTime <= endTime) {    System.out.println("参加秒杀活动成功");} else {    System.out.println("参加秒杀活动失败");}

第三章 Calendar类

3.1 概述

  • java.util.Calendar类表示一个“日历类”,可以进行日期运算。它是一个抽象类,不能创建对象,我们可以使用它的子类:java.util.GregorianCalendar类。
  • 有两种方式可以获取GregorianCalendar对象:
    • 直接创建GregorianCalendar对象;
    • 通过Calendar的静态方法getInstance()方法获取GregorianCalendar对象【本次课使用】

3.2 常用方法

方法名说明
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)为某个字段增加/减少指定的值

3.3 get方法示例

public class Demo {    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);//返回值范围:1--7,分别表示:"星期日","星期一","星期二",...,"星期六"        System.out.println(year + "年" + month + "月" + day + "日" +hour + ":" + minute + ":" + second);        System.out.println(getWeek(week));    }    //查表法,查询星期几    public static String getWeek(int w) {//w = 1 --- 7        //做一个表(数组)        String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};        //            索引      [0]      [1]       [2]      [3]       [4]      [5]      [6]        //查表        return weekArray[w - 1];    }}

3.4 set方法示例:

public class Demo {    public static void main(String[] args) {        //设置属性——set(int field,int value):Calendar c1 = Calendar.getInstance();//获取当前日期//计算班长出生那天是星期几(假如班长出生日期为:1998年3月18日)c1.set(Calendar.YEAR, 1998);c1.set(Calendar.MONTH, 3 - 1);//转换为Calendar内部的月份值c1.set(Calendar.DAY_OF_MONTH, 18);int w = c1.get(Calendar.DAY_OF_WEEK);System.out.println("班长出生那天是:" + getWeek(w));            }    //查表法,查询星期几    public static String getWeek(int w) {//w = 1 --- 7        //做一个表(数组)        String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};        //            索引      [0]      [1]       [2]      [3]       [4]      [5]      [6]        //查表        return weekArray[w - 1];    }}

3.5 add方法示例:

public class Demo {    public static void main(String[] args) {        //计算200天以后是哪年哪月哪日,星期几?Calendar c2 = Calendar.getInstance();//获取当前日期        c2.add(Calendar.DAY_OF_MONTH, 200);//日期加200        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("200天后是:" + y + "年" + m + "月" + d + "日" + getWeek(wk));    }    //查表法,查询星期几    public static String getWeek(int w) {//w = 1 --- 7        //做一个表(数组)        String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};        //            索引      [0]      [1]       [2]      [3]       [4]      [5]      [6]        //查表        return weekArray[w - 1];    }}

后记
👉👉💕💕美好的一天,到此结束,下次继续努力!欲知后续,请看下回分解,写作不易,感谢大家的支持!! 🌹🌹🌹

来源地址:https://blog.csdn.net/m0_59230408/article/details/132056281

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

从零开始学习 Java:简单易懂的入门指南之时间类(十七)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

从零开始学习 Java:简单易懂的入门指南之时间类(十七)

时间类 第一章 Date类1.1 Date概述1.2 Date常用方法 第二章 SimpleDateFormat类2.1 构造方法2.2 格式规则2.3 常用方法2.4 练习1(初恋女友的出生日期)2.5 练习2(秒杀活动)
2023-08-30

从零开始学习 Java:简单易懂的入门指南之类和对象(七)

java基础知识 1. 类和对象1.1 类和对象的理解1.2 类的定义1.3 对象的使用1.4 学生对象-练习 2. 对象内存图2.1 单个对象内存图2.2 多个对象内存图 3. 成员变量和局部变量3.1 成员变量和局部
2023-08-18

从零开始学习 Java:简单易懂的入门指南之爬虫(十六)

爬虫 1.1 本地数据爬取1.2 网络数据爬取1.3 爬取数据练习1.4 按要求爬取1.5 贪婪爬取和非贪婪爬取1.6 String的split方法中使用正则表达式1.7 String类的replaceAll方法中使用正则表达式1.
2023-08-25

从零开始学习 Java:简单易懂的入门指南之MAth、System(十二)

常见API,MAth、System 1 Math类1.1 概述1.2 常见方法1.3 算法小题(质数)1.4 算法小题(自幂数) 2 System类2.1 概述2.2 常见方法 1 Math类 1.1 概述 tips
2023-08-18

从零开始学习 Java:简单易懂的入门指南(三)

java基础知识 1.运算符和表达式运算符:表达式: 2.算术运算符练习:数值拆分 3.隐式转换概念:简单记忆:两种提升规则:取值范围从小到大的关系: 4.隐式转换的练习案例一:案例二:案例三:案例四:
2023-08-16

从零开始学习 Java:简单易懂的入门指南(一)

Java基础语法 1. 人机交互1.1 什么是cmd?1.2 如何打开CMD窗口?1.3 常用CMD命令1.4 CMD练习1.5 环境变量 2. Java概述1.1 Java是什么?1.2下载和安装1.2.1 下载1.2.2
2023-08-16

从零开始学习 Java:简单易懂的入门指南(二)

Java基础语法 1. 注释1.1使用的技巧1.2注意点 2. 关键字2.1 概念2.2 第一个关键字class 3. 字面量3.1区分技巧 4. 变量4.1 什么是变量?4.2 变量的定义格式4.2.1 格式详解
2023-08-19

从零开始学习 Java:简单易懂的入门指南之API、String类(八)

常用API 1.API1.1API概述1.2如何使用API帮助文档 2.String类2.1String类概述2.2String类的特点2.3String类的构造方法2.4创建字符串对象两种方式的区别2.5字符串的比较2.5.
2023-08-17

从零开始学习 Java:简单易懂的入门指南之方法(六)

java基础知识 1. 方法概述1.1 方法的概念 2. 方法的定义和调用2.1 无参数方法定义和调用2.3 无参数方法的练习 3. 带参数方法定义和调用3.1 带参数方法定义和调用3.2 形参和实参3.3 带参数方法练
2023-08-17

编程热搜

目录