日期处理类
Date
构造方法
- 无参构造:public Date()
- 有参构造:public Date(long date)
- 接受long型数据,转换成date
方法
-
public long getTime() 把date数据转成long型数据,便于格式化处理。
-
public int compareTo(Date anotherDate) 比较日期的大小
若想看其他方法,请下载官网API查看
注:您可能觉得getTime()方法和System.currentTimeMillis()有点像,
当构造Date对象时无参的话,调用的就是System.currentTimeMillis(),
实际开发当中,后者的效率要比前者高。
public class DateTest {
public static void main(String[] args) {
Date date = new Date();
System.out.println(date);
}
}
输出结果:
Thu Oct 17 21:42:27 CST 2019
SimpleDateFormat 日期格式化
simpleDateFormat是专门处理日期格式的类
日期格式化规则如下:
yyyy:年
MM:月
dd:日
hh:1~12小时制(1-12)
HH:24小时制(0-23)
mm:分
ss:秒
S:毫秒
E:星期几
D:一年中的第几天
F:一月中的第几个星期(会把这个月总共过的天数除以7)
w:一年中的第几个星期
W:一月中的第几星期(会根据实际情况来算)
a:上下午标识
k:和HH差不多,表示一天24小时制(1-24)。
K:和hh差不多,表示一天12小时制(0-11)。
z:表示时区
构造方法
- public SimpleDateFormat()
- public SimpleDateFormat(String pattern) 按照指定格式进行日期格式化。
- public SimpleDateFormat(String pattern, Locale locale) 按照指定格式和日期区域进行格式化。
方法
- public final String format(Date date) 格式化日期
- public Date parse(String source) throws ParseException 把String型的字符串转换成特定格式的date类型
示例:
public class DateTest {
public static void main(String[] args) throws ParseException {
Date date = new Date();
String str = "2012-12-25 00:00:00:000" ;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println(sdf.format(date));
Date date1 = sdf.parse(str);
System.out.println(date1);
}
}
结果:
2019-10-17 10:30:50
Tue Dec 25 00:00:00 CST 2012
Calendar
- 日期计算
- Calendar是一个抽象类
public class DateTest {
public static void main(String [] args) throws ParseException {
Calendar cal = Calendar.getInstance(); // 取得本类对象
StringBuffer buf = new StringBuffer();
// buf 依次 append 年 月 日 时 分 秒 毫秒
buf.append(cal.get(Calendar.YEAR)).append("-");
buf.append(cal.get(Calendar.MONTH) + 1).append("-");
buf.append(cal.get(Calendar.DAY_OF_MONTH)).append(" ");
buf.append(cal.get(Calendar.HOUR_OF_DAY)).append(":");
buf.append(cal.get(Calendar.MINUTE)).append(":");
buf.append(cal.get(Calendar.SECOND)).append(":");
buf.append(cal.get(Calendar.MILLISECOND));
// 可以在append中,对日期时间进行计算操作
System.out.println(buf);
}
}
结果:
2019-10-17 22:40:20:999