- 日期处理常用类
在 Java 中,表示日期类型的数据有两个:java.util.Date 和 java.util.Calendar 类。
java.util.Data 类:
(有点旧、有点老)
表示日期的类,使用 Date 可以最快速的获取到系统的当前时间。
构造方法:
- public Date() 获取系统的当前时间。
- public Date(long date) 按1970.1.1到指定时间的毫秒值来获得系统的当前时间。
public static void main(String[] args) {
Date date = new Date();//系统当前时间
System.out.println(date);
}
//Fri Feb 17 16:54:05 CST 2023 格林尼治标准时间
常用方法:public long getTime() ------- 返回对象表示日期到1970.1.1的毫秒值。
此方法使用毫秒值来跟其他的日期类型进行转换。
java.sql.date 类:
此类和前面的类进行区分,此类表示:数据库中日期类型的对象。
构造方法:
Date(long date) 使用给定的毫秒时间值构造一个 Date 对象。
public static void main(String[] args) {
Date date = new Date();//系统当前的时间
System.out.println(date);
System.out.println(date.getTime());
//数据库中的Date
java.sql.Date d = new java.sql.Date(date.getTime());
System.out.println(d);
}
SimpleDateFormat 类:
SimpleDateFormat 是对 Date 数据类型进行格式化的类。
构造方法:
SimpleDateFormat(String pattern) 使用给定模式 SimpleDateFormat 并使用默认的 FORMAT 语言环境的默认日期格式符号。
String pattern 这是一个模式字符串,使用一些标准的字母表示特定的日期字段。
常用方法:
public final String format(Date date) -------将日期格式化成日期/时间字符串。
public static void main(String[] args) {
Date date = new Date();//系统当前时间
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒!");
String dateStr = format.format(date);
System.out.println(dateStr);
}
public Date parse(String source) throws ParseException ----------从给定字符串的开始解析文本以生成日期。
public static void main(String[] args) {
Date date = new Date();//获取系统当前时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//将一个日期类型转换为字符串
String format = sdf.format(date);
System.out.println(format);
String birthday = "2000-2-21";
try {
Date d = sdf.parse(birthday); //解析自定义的字符串
System.out.println(d);
} catch (ParseException e) {
e.printStackTrace();
}
}
Calendar 类:
Date 有点老和旧,所以这些方法基本都不用的。
Calendar 构造方法: 没有
Calendar 是一个抽象类,不用 new 关键字去创建实例。可以调用本类的静态方法,获取子类的实例。
常用方法:
- public static Calendar getInstance(); -------- 使用默认时区和区域设置 来获取日历。
Calendar calendar = Calendar.getInstance(); //静态方法
- public int get(int field) -------- 返回给定日历字段的值。其中的参数:int field 是用来指明,你想要获取的字段。(例如年份、月份之类的)
PS:需要注意的是 MONTH 月份,值是从 0 开始的,与实际的月份之间差了1。
- public final void set(int year,int month,int date)
public final void set(int year, int month, int date, int hourOfDay, int minute, int second)
public void set(int field , int value)
设置给定日历字段的值。 - public abstract void add(int field,int amount)
根据日历的规则,将指定的时间量添加或减去给定的日历字段