一、java.util 包提供了Date 类来封装当前的日期和时间,Date 类提供两个构造函数来实例化 :Date( )、Date(long millisec)。两个比较好用的方法:boolean after(Date date)、boolean before(Date date)。Date类的getTime() 方法,返回的是自1970年1月1日至当前Date的毫秒数。
二、java.text 包提供SimpleDateFormat 类,它是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 提供format()方法,允许自定义格式化日期;提供parse()方法,可以将自定义字符串转换为日期。
1. 示范代码:
import java.util.Date; import java.text.SimpleDateFormat; public class MyDemo { public static void main(String args[]) { Date myDate = new Date(); // 使用 toString() 函数显示日期时间 System.out.println(myDate.toString()); System.out.println(myDate.getTime()); SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss"); System.out.println("当前时间为: " + sdf.format(myDate)); } }
输出如下:
%JAVA_HOME%\bin\java "MyDemo" ...
Sat Jun 19 06:52:25 CST 2021
1624056745192
当前时间为: 2021-06-19 06:52:25
2. 日期和时间的格式化编码参考下图(也可以在JDK的API文档中获得):
三、java.util 包提供Calendar类,它可以对日期进行复杂的操作,比如加减。简单来说,它的功能比Date强大得多,如果需要获得日期的年、月、日等属性,建议使用Calendar。Calendar类是一个抽象类,需要使用getInstance方法创建。
import java.util.Date; import java.util.Calendar; import java.text.SimpleDateFormat; public class MyDemo { public static void main(String args[]) { Calendar myCalen = Calendar.getInstance(); int year = myCalen.get(Calendar.YEAR); int month = myCalen.get(Calendar.MONTH) + 1; int date = myCalen.get(Calendar.DATE); int hour = myCalen.get(Calendar.HOUR_OF_DAY); int minute = myCalen.get(Calendar.MINUTE); int second = myCalen.get(Calendar.SECOND); int day = myCalen.get(Calendar.DAY_OF_WEEK); myCalen.set(Calendar.YEAR,2008); // 年份设置为2008年 myCalen.add(Calendar.DATE,-10); // 日期减去10 } }
注意:Calender的月份是从0开始,日期和年份是从1开始。