前言:
小编最近让流感折磨的快嘎啦,
呜呜呜,拖更了俩天,
从明天开始我们继续日更!!!!
我们一直都是以这样的形式,让新手小白轻松理解复杂晦涩的概念,
把Java代码拆解的清清楚楚,每一步都知道他是怎么来的,
为什么用这串代码关键字,对比同类型的代码,
让大家真正看完以后融会贯通,举一反三,实践应用!!!!
①官方定义 和 大白话拆解对比
②举生活中常见贴合例子、图解辅助理解的形式
③对代码实例中关键部分进行详细拆解、总结
给小编一个赞或者关注吧,我们一起进步!!
一、java.text.SimpleDateFormat
官方语言:
- java.text.SimpleDateFormat 类是 Java 标准库的一部分,用于以一种不依赖于具体语言环境的方式来格式化和解析日期。
- 它允许用户通过指定日期和时间的模式来转换 Date 对象与符合该模式的字符串之间的转换。
构造方法:
- SimpleDateFormat(): 使用默认的格式和语言环境创建一个新的 SimpleDateFormat 实例。
- SimpleDateFormat(String pattern): 根据提供的日期时间模式创建一个新的 SimpleDateFormat 实例。
格式化:
- public String format(Date date): 将一个 Date 对象按照实例化的模式转换为字符串形式。
解析:
- public Date parse(String source): 将一个符合当前实例模式的字符串解析为一个 Date 对象。
大白话拆解:
- 现在有一个特别的翻译机,这个机器可以将“日期”变成我们能看懂的文字(比如:2025年1月15日星期三),也可以把文字再变回日期的形式。在Java中,这个神奇的机器就是 SimpleDateFormat 类。
- 如果你告诉这台机器一个特殊的规则(比如:"yyyy-MM-dd" 表示年-月-日),它就可以根据这个规则工作。
- 当你想把一个日期转成特定格式的文本,就使用 .format() 方法。
- 如果有一段描述日期的文字,并且你知道它的格式,就可以用 .parse() 方法把这个文字转回日期类型。
举个栗子:
1、格式化的例子
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) {
// 创建一个SimpleDateFormat对象,指定格式
SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 E");
// 获取当前日期时间
Date currentTime = new Date();
// 将日期格式化为字符串
String dateString = formatter.format(currentTime);
// 输出格式化后的日期字符串
System.out.println(dateString); // 输出类似于 "2025年01月15日 星期三"
}
}
1.2代码解释和总结:
1、导入需要的包:
import java.text.SimpleDateFormat;
import java.util.Date;
- 这两行代码告诉Java我们需要使用SimpleDateFormat和Date这两个类。
- 它们就像是你做饭时需要的工具和材料一样重要。
2、创建一个SimpleDateFormat对象,指定格式:
SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 E");
- 这里我们创建了一个叫做formatter的新工具(对象),这个工具专门用来把日期变成特定样子的文字。这里的"yyyy年MM月dd日 E"就是我们要的样式模板,比如“2025年01月15日 星期三”。
3、获取当前日期时间:
Date currentTime = new Date();
- 使用之前创建的formatter工具,按照我们设定的格式("yyyy年MM月dd日 E"),将currentTime转换成文字形式,并存储在dateString变量中。
4、将日期格式化为字符串:
String dateString = formatter.format(currentTime);
- 使用之前创建的formatter工具,按照我们设定的格式("yyyy年MM月dd日 E"),将currentTime转换成文字形式,并存储在dateString变量中。
5、输出格式化后的日期字符串
System.out.println(dateString); // 输出类似于 "2025年01月15日 星期三"
- 最后,这行代码将格式化后的日期文本打印出来,显示在屏幕上,就像你在纸上写下今天的日期一样。
2、解析的例子:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) {
try {
// 创建一个SimpleDateFormat对象,指定格式
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
// 字符串表示的日期
String dateInString = "2025-01-15";
// 将字符串解析为日期对象
Date date = formatter.parse(dateInString);
// 输出解析后的日期对象
System.out.println(date); // 输出类似于 "Wed Jan 15 00:00:00 CST 2025"
} catch (ParseException e) {
e.printStackTrace();
}
}
}
2.2代码解释和总结:
1、导入需要的包
2、创建一个SimpleDateFormat对象,指定格式:
(这俩个和第一个例子差不多,咱们就不多说了)
3、字符串表示的日期
String dateInString = "2025-01-15";
- 这是一个代表日期的字符串,形式为"2025-01-15",意味着2025年1月15日。你可以把它想象成一张写有日期的小纸条。
4、将字符串解析为日期对象
Date date = formatter.parse(dateInString);
- 使用formatter这个工具,根据设定的模式("yyyy-MM-dd"),将字符串dateInString("2025-01-15")转换为一个Date对象,这样计算机就能识别并处理这个日期了。
- 这就像是把小纸条上的日期信息输入到你的万能翻译机中,让它变成机器能够理解的日期形式。
5、输出解析后的日期对象
System.out.println(date); // 输出类似于 "Wed Jan 15 00:00:00 CST 2025"
- 最后,这行代码将解析得到的Date对象打印出来,显示在屏幕上。
- 由于Date对象的标准输出格式与我们输入的格式不同,所以你会看到类似"Wed Jan 15 00:00:00 CST 2025"这样的输出,包含了星期几、月份的英文缩写、具体的日期、具体的时间以及时区信息。
6、捕获可能发生的解析错误:
catch (ParseException e) {
e.printStackTrace();
}
- 如果提供的日期字符串不符合设定的格式(比如"yyyy-MM-dd"),就会发生错误。
- 这部分代码是用来捕捉这种错误,并打印错误信息,帮助开发者了解哪里出了问题。
- 这就像如果你给了翻译机一张无法读懂的纸条,它会告诉你“对不起,我读不懂这个”。
二、java.util.Calendar(日历)
官方语言
Date
类的大部分API由于设计上的缺陷已经被标记为废弃(deprecated),推荐使用Calendar
类来代替。Calendar
是一个抽象类,主要用于日期和时间字段的操作,比如获取、设置年月日时分秒等信息。通过调用Calendar.getInstance()
方法可以获取一个Calendar
对象的实例,该方法会根据当前的默认时区和语言环境初始化实例。
大白话拆解
- 以前有一个旧的工具箱(
Date
类),里面有很多工具,但是这些工具很多都不太好用了,所以人们决定制作一个新的更好的工具箱(Calendar
类)。 - 这个新工具箱可以帮助我们更方便地操作时间,比如查看今天是哪一年、哪一月、星期几等等。
- 要开始使用这个新的工具箱,你只需要说一声“给我一个工具箱”,然后它就会给你准备好一个装满各种工具的箱子(
Calendar.getInstance()
方法)。
举个栗子:
import java.util.Calendar;
public class Main {
public static void main(String[] args) {
// 获取Calendar的一个实例
Calendar calendar = Calendar.getInstance();
// 输出当前日期的一些基本信息
System.out.println("年: " + calendar.get(Calendar.YEAR));
System.out.println("月: " + (calendar.get(Calendar.MONTH) + 1)); // 注意:月份从0开始计数
System.out.println("日: " + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("星期几: " + calendar.get(Calendar.DAY_OF_WEEK)); // 星期天是第一天
}
}
代码解释和总结:
1、导入需要的包(和前面一样,省略了吧)
2、获取Calendar的一个实例
Calendar calendar = Calendar.getInstance();
- 这里我们通过调用Calendar.getInstance()方法获取了一个Calendar对象的实例,并命名为calendar。
- 这就像是从我们的工具箱中拿出了一套完整的工具,准备开始工作。这套工具可以帮助我们查看和修改当前的日期和时间信息。
3、输出当前日期的一些基本信息:
年份:
System.out.println("年: " + calendar.get(Calendar.YEAR));
月份:
System.out.println("月: " + (calendar.get(Calendar.MONTH) + 1)); // 注意:月份从0开始计数
日:
System.out.println("日: " + calendar.get(Calendar.DAY_OF_MONTH));
星期几:
System.out.println("星期几: " + calendar.get(Calendar.DAY_OF_WEEK)); // 星期天是第一天
我们今天就先到这里,下次见吧!!!