一(Date类):
在JDK的java.util包中,提供了Date类用于表示日期和时间,精确到毫秒。随着JDK版本的不断升级和发展,Date类中的大部分构造方法和普通方法都已经不推荐使用。在JDK8中,Date类只有2个构造方法可以使用,具体如下。
1.Date():用来创建当前时间的Date对象。
2.Date(long date):用来创建指定时间的Date对象,初始化时间为在1970年1月1日0时0分0秒的基础上去加毫秒值表示的时间。
计算机的初始时间:记为1970年1月1日0时0分0秒。
package 日期与时间类;
import java.util.Date;public class DateTest01 {public static void main(String[] args) {// 创建日期类Date date1 = new Date();// 获取当前基于环境的时间System.out.println(date1);long time = date1.getTime();//计算当前时间距离1970年1月1日 00:00:00 的 毫秒值---时间戳System.out.println(time);Date date2 = new Date(90000);//创建一个距离1970年1月1日 00:00:00 经过了多少毫秒的时间System.out.println(date2);}
}
二(SimpleDateFormat类):
SimpleDateFormat类可以使用new关键字创建实例对象,它的构造方法需要接收一个表示时间格式模板的字符串参数,用来以区域设置日期的格式化和解析。
SimpleDateFormat构造方法:
1. public SimpleDateFormat()//表示设置默认格式和日期 。
2. public SimpleDateFormat(String pattern)
SimpleDateFormat类格式化和解析涉及的方法:
1.格式化方法:(Date-->SimpleDateFormat)
2.解析方法:(String---->Date)
import java.text.SimpleDateFormat;
import java.util.Date;public class DateTest02 {public static void main(String[] args) throws Exception {//SimpleDateFormat 用来实现 日期 和 字符串 之间的相互转换SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");Date date1 = new Date();// 把日期转换成指定格式的字符串String format = sdf.format(date1);System.out.println(format);// 把指定格式的 字符串 转换成 日期String time = "2000/10/23 08:20:54";Date date2 = sdf.parse(time);System.out.println(date2);}
}
三(Calendar类):
Calendar类用于完成日期和时间字段的操作,可以通过特定的字段设置和读取日期的特定部分,比如年月日时分秒等。Calendar类是一个抽象类,不可以被实例化,在程序中需要调用其静态方法getInstance()来得到一个Calendar对象,然后才能调用其相应的方法,具体示例如下:
Calendar calendar=Calendar.getInstance();
Calendar类为操作日期和时间提供了大量的方法,例如:
1.int get(int field):返回指定日历字段field的值
2.void set(int field,int value):设置指定日历字段field的值value
3.void set(int year,int month,int date):设置Calendar对象的年月日3个字段的值
4.void set(int year,int month,int date,int hour,int minute,int second):设置Calendar对象的年月日6个字段的值
5.void add(int field,int amount):为指定的日历字段field增加或减少指定的时间量amount
6.Date getTime()返回一个表示当前Calendar表示的时间的Date对象,即Calendar———>Date
以上大多数方法int类型的参数field,该参数需要接收Calendar类中的常量值,分别代表着不同的字段。例如:
1.Calendar.YEAR:表示年份
2.Calendar.MONTH:表示月份。在使用该字段时,月份的起始值是从0开始的,因此要获取当前的月份需要在Calendar.MONTH的基础上+1
3.Calendar.DATE:表示日(天)
4.Calendar.HOUR:表示小时
5.Calendar.MINUTE:表示分钟
6.Calendar.SECOND:表示秒
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;public class CalenderTest01 {public static void main(String[] args) {//Calendar类是一个抽象类,可以通过Calendar 的getInstance方法返回一 个Calendar 对象Calendar calendar = Calendar.getInstance();//获取当前系统的时间Date date1 = calendar.getTime();System.out.println(date1);Long timeInMillis = calendar.getTimeInMillis();System.out.println("当前时间的亳秒值: " + timeInMillis);TimeZone timeZone = calendar.getTimeZone();System.out.println("时区: " + timeZone);//get.方法可以根据指定的日历字段获取时间对应的值int year = calendar.get(Calendar.YEAR);System.out.println("年份: " + year);int month = calendar.get(Calendar.MONTH);//0-11 表示1-12月System.out.println("月份: " + (month + 1));int date = calendar.get(Calendar.DAY_OF_MONTH);System.out.println("日期: " + date);int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);System.out.println("本年的第: " + dayOfYear);System.out.println("------------------------");//可以获取指定时间月份0 - 11表示1 - 12月calendar.set(2000, 9, 28, 15, 32,35);Date date2 = calendar.getTime();System.out.println(date2);}
}