更多 Java 基础知识方面的文章,请参见文集《Java 基础知识》
关于 Java 8 的日期与时间操作,参见 Java8 日期与时间操作
Calendar 类
示例:
public static void main(String[] args) {
// 使用默认的时区 timezone 和语言 locale
Calendar cal = Calendar.getInstance();
// Thu Jan 19 17:49:26 CST 2017
System.out.println(cal.getTime());
System.out.println(cal.getTimeInMillis()); // 毫秒数
System.out.println(cal.get(Calendar.YEAR)); // 年
System.out.println(cal.get(Calendar.MONTH)); // 月 0~11
System.out.println(cal.get(Calendar.DATE)); // 日
System.out.println(cal.get(Calendar.HOUR_OF_DAY)); // 小时
System.out.println(cal.get(Calendar.MINUTE)); // 分
System.out.println(cal.get(Calendar.SECOND)); // 秒
// 昨天
cal.add(Calendar.DATE, -1);
// 明年
cal.add(Calendar.YEAR, 1);
}
Calendar 类 VS Date 类
Date date = new Date();
Date date = Calendar.getInstance().getTime();
-
Date
类更简单,主要用于兼容之前的 Java 程序 - 如果需要设置和操作日期,最好使用
Calendar
类 -
Date
不能设置时区 timezone 和语言 locale,而Calendar
类可以设置。
日期格式化
使用 SimpleDateFormat
,关于格式参数,可以参见 SimpleDateFormat
测试页面:Online SimpleDateFormat Test
示例:
// 使用默认的时区 timezone 和语言 locale
Calendar cal = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd");
System.out.println(df.format(cal.getTime())); // 2017/01/19
Date date = df.parse("2017/01/19");
System.out.println(date); // Thu Jan 19 00:00:00 CST 2017