目录
在Java中表示日期类型的类有二个:java.util.Date和java.util.Calendar类。
1 java.util.Date类
表示日期的类。使用Date可以最快的获取系统当前时间。
1.1 构造方法
① 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 格林尼治标准时间
1.2 常用方法
public long getTime() 返回对象表示日期到1970.1.1的毫秒值。
使用毫秒值与其他日期类型进行转换。
2 java.sql.Date类
java.sql.Date类是一个用来表示数据库中日期类型的对象。
2.1 构造方法
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);
Date da = new Date(d.getTime());
}
3 SimpleDateFormat类
SimpleDateFormat是对Date数据类型进行格式化的类。
因为直接输出一个Date对象。日期格式是格林尼治标准时间。一般用户看不懂。
3.1 构造方法
SimpleDateFormat(String pattern) 使用给定模式 SimpleDateFormat并使用默认的 FORMAT语言环境的默认日期格式符号。
String pattern 这是一个模式字符串,使用一些标准的字母表示特定的日期字段。
Y 表示的是年
M 表示的是月
d 表示的是日期
H 24小时的小时
h 12小时的小时
m 分钟
s 秒
S 毫秒
3.2 常用方法
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();
}
}
4 Calendar类
以前Date类中提供了在日期中获取每一个日期数值的方法。例如:获取年份值,获取月份
时,获取日期的值。
现在如果我们需要操作日期(加一个月,520天之后),获取日期数值,例如获取年份值,获
取月份时,就可以使用Calendar类。
4.1 Calendar构造方法
没有构造方法。Calendar是一个抽象类。
不用new关键字去创建实例。可以调用本类的静态方法,获取子类的实例。
4.2 常用方法
① public static Calendar getInstance() 使用默认时区和区域设置获取日历。
Calendar calendar = Calendar.getInstance();//静态方法
② public int get(int field)
返回给定日历字段的值。例如:获取年份,获取月份,获取一年中的第几天。
参数 int field 是用来指明,你要获取的字段。
MONTH 月份,值从0开始。与实际月份之间差1。
DAY_OF_WEEK 星期。星期取值1-7。星期日是每周的第一天。
③ 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)
根据日历的规则,将指定的时间量添加或减去给定的日历字段
calendar.set(Calendar.MONTH , 2);
System.out.println(calendar);
calendar.add(Calendar.DAY_OF_MONTH , -20);
System.out.println(calendar);
4.3 练习:输出系统当前日期。
格式如下:yyyy年mm月dd日 星期一
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(dayOfWeek);
//输出系统当前日期。格式如下:yyyy年mm月dd日 星期一
String[] weeks = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
System.out.println(weeks[dayOfWeek-1]);