目录
2.1SimpleDateFormat的构造方法(parse方法、format方法)
1 Date类
1.1 概述
`java.util.Date`类表示特定的瞬间,精确到毫秒。它有一个构造函数接受一个`long`型参数,该参数表示从1970年1月1日00:00:00 GMT起的毫秒数,用来创建一个对应的`Date`对象。例如,`Date date = new Date(1617648000000L);`会创建一个代表2021年4月6日00:00:00的`Date`对象。
1.2 Date类构造方法
public Date()
:创建Date对象并初始化此对象,(精确到毫秒)。public Date(long date)
:创建Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”。
我们的基准时间为1970年1月1日8时0分0秒
@Test
void DateTest(){
//创建日期对象,获取当前时间
Date currentDate = new Date();
System.out.println(currentDate); //Fri Apr 19 15:40:57 CST 2024
//创建日期对象,把毫秒值转换成日期对象
Date date = new Date(1L);
System.out.println(date); //Thu Jan 01 08:00:00 CST 1970
}
1.3 Date类的getTime方法:返回毫秒数
`getTime()`方法是`java.util.Date`类中的一个方法,用于获取表示该`Date`对象的时间的毫秒数。例如,如果有一个`Date`对象`date`,可以通过`long timeInMillis = date.getTime();`来获取该对象表示的时间的毫秒数。
public class Main {
public static void main(String[] args) {
// 创建一个Date对象,表示2021年4月6日00:00:00
Date date = new Date(1617648000000L);
// 获取该Date对象表示的时间的毫秒数
long timeInMillis = date.getTime();
// 输出时间的毫秒数
System.out.println("时间的毫秒数:" + timeInMillis);
}
}
2 DateFormat类
java.text.DateFormat
是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。
public static void main(String[] args) {
// 创建一个Date对象,表示当前时间
Date date = new Date();
// 创建一个SimpleDateFormat对象,指定日期时间格式
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 使用DateFormat对象格式化Date对象
String formattedDate = dateFormat.format(date);
// 输出格式化后的日期时间字符串
System.out.println("当前时间:" + formattedDate);
}
2.1SimpleDateFormat的构造方法(parse方法、format方法)
@Test
void DateTest01(){
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String format = dateFormat.format(date);
System.out.println(format); //2024-04-19
String dataString = "2024-04-19";
try {
Date parse = dateFormat.parse(dataString);
System.out.println(parse); //Fri Apr 19 00:00:00 CST 2024
} catch (ParseException e) {
e.printStackTrace();
}
}
3 Calendar类
3.1 概念
java.util.Calendar
是Java中用于处理日期和时间的抽象类。它提供了一种在特定日历系统中对日期和时间进行操作的方式,独立于使用的特定时区。Calendar
类允许你执行许多操作,如获取日期的年、月、日、时、分、秒等字段的值,以及执行日期和时间的算术运算,比如添加或减去一定的时间量。使用Calendar
类可以更灵活地处理日期和时间,而不受特定时区的限制。
3.2 获取方式
Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,返回子类对象,如下:
public static Calendar getInstance()
:使用默认时区和语言环境获得一个日历
import java.util.Calendar;
public class Demo06CalendarInit {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
}
}
3.3 常用方法
根据Calendar类的API文档,常用方法有:
- public int get(int field):返回给定日历字段的值。
- public void set(int field, int value):将给定的日历字段设置为给定值。
- public abstract void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
- public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象、
3.3.1 get/set方法
import java.util.Calendar;
public class Demo {
public static void main(String[] args) {
// 创建Calendar对象
Calendar cal = Calendar.getInstance();
// 获取年
int year = cal.get(Calendar.YEAR);
// 获取月
int month = cal.get(Calendar.MONTH) + 1;
// 获取日
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
System.out.print(year + "年" + month + "月" + dayOfMonth + "日");
}
}
3.3.2 add方法
import java.util.Calendar;
public class Demo08CalendarMethod {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
// 获取年
int year = cal.get(Calendar.YEAR);
// 获取月
int month = cal.get(Calendar.MONTH) + 1;
// 获取日
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "年" + month + "月" + dayOfMonth + "日");
// 使用add方法
cal.add(Calendar.DAY_OF_MONTH, 2); // 加2天
cal.add(Calendar.YEAR, -3); // 减3年
// 获取年
year = cal.get(Calendar.YEAR);
// 获取月
month = cal.get(Calendar.MONTH) + 1;
// 获取日
dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "年" + month + "月" + dayOfMonth + "日");
}
}
3.3.3 getTime方法:返回对应的Date对象
import java.util.Calendar;
import java.util.Date;
public class Demo {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();
System.out.println(date);
}
}