相关小tip
1、时间戳
Date类在实例创建后是不推荐改变的,但是我们可以利用时间戳加减来改变该实例
时间戳及表示一个特定时间点的数值,一般为自某个固定时间点(如1970.1.1.00:00)以来经过的毫秒数或者秒数
//返回的是自1970年1月1日00:00:00 UTC至今的毫秒数
//法一
long timestamp = System.currentTimeMillis();
System.out.println(timestamp);
//法二 使用Instant类来获取时间戳
import java.time.Instant; Instant instant = Instant.now();
long timestamp = instant.toEpochMilli();
System.out.println(timestamp);
2、常用的格式化规则(区分大小写)
“yyyy - MM - dd - HH : mm : s”
年 月 日 时 分 秒
一、Date类
1、相当于一个时间戳,精确到毫秒 , 可以转换成日期对象
2、两种基本构造方法
(1) Date()
//返回当前时间
//格式 : 周几 月份 几号 00:00:00 时区 年份
(2) Date(long date)
// 返回从标准基准时间开始经历date毫秒的时间
// 创建日期对象,把当前的时间转成日期对象
System.out.println(new Date()); // Mon Jun 10 19:36:10 CST 2024
// 创建日期对象,把当前的毫秒值转成日期对象
System.out.println(new Date(0L)); // Thu Jan 01 08:00:00 CST 1970
3、Date类的getTime()
返回毫秒数
二、DateFormat类
java.text.DateFormat
是时间/日期格式化子类的抽象类 , 完成Date类和String类的相互转换
1、其子类SimpleDateFormat
构造方法:
new SimpleDateFormat(Strintg pattern);
//pattern为自定义的格式化模板
2、常用方法
(1) public String format(Date date)
// Date类转换为String类
(2) public Date parse(String source)
//String类转换为Date类
//创建日期格式化对象
DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
//获取当前时间
Date date = new Date();
String str = df.format(date);
System.out.println(str);
String s1 = "2024年6月10日";
Date dt = df.parse(s1);
System.out.println(dt);
三、Calendar类
日历类。Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,返回子类对象
1、根据默认时区和语言获得一个日历
Calendar cal = Calendar.getInstance();
如果你输出cal , 你会得到一长串字符串 , 表示了当时的年月日等关于时间的详细信息,这就需要我们分辨这些信息分别表示的是什么
2、常用字段值
YEAR 年
MONTH 月(从0开始,0表示一月)
DAY_OF_MONTH 月中的天(几号)
HOUR 时(12小时制)
HOUR_OF_DAY 时(24小时制)
MINUTE 分
SECOND 秒
DAY_OF_WEEK 周中的天(周几,周日为1,可以-1使用)
3、常用方法
public int get(int field)
:返回给定日历字段的值
// 获取年
int year = cal.get(Calendar.YEAR);
public void set(int field, int value)
:将给定的日历字段设置为给定值
// 设置年
cal.set(Calendar.YEAR, 2005);
public abstract void add(int field, int amount)
:根据日历的规则,为给定的日历字段添加或减去指定的时间量
cal.add(Calendar.DAY_OF_MONTH, 2); // 加2天
cal.add(Calendar.YEAR, -3); // 减3年
public Date getTime()
:返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象
Date date = cal.getTime();
参考博客:https://blog.csdn.net/sc179/article/details/108687144