Java Learn(四)
Java中的java.util.Date类
日期相关的类
标准时间:1970年1月1日0时0分0秒。每个地区的标准时间是不一样的,因为存在时区的差异新,中国属于东八区,因此标准时间是1970年1月1日8时0分0秒
1.Date()类
1.基本概念:
java.util.Date类用于描述日期信息:年月日时分秒,可以精确到毫秒。1秒=1000毫秒。
2.常用方法:
Date()
用于无参的方式构造对象,默认使用当前的系统时间。
Date(long date)
根据参数指定的毫秒数来构造对象
其中参数为距离1970年1月1日0时0分0秒的毫秒数(与File类搭配使用)
Date getTime()
获取当前对象距离1970年1月1日0时0分0秒的毫秒数
Date setTime(long time)
用于设置当前对象的时间为参数指定的毫秒数,距离标准时间
2.SimpleDateFormat类
1.基本概念:
java.text.SimpleDateFormat类用于格式化和解析日期,也就是实现日期类型和字符串之间的相关转换。
2.常用方法:
SimpleDateFormat(String pattern)
根据参数指定的字符串模式来构造对象。
y代表年,M代表月,d代表日,H代表时,m代表分,s代表秒
public final String format(Date date)
用于将Date类型转换成String类型
public Date parse(String source) throws ParseException
用于将String类型转换成Date类型
3.Calendar类
1.基本概念:
java.util.Calendar类用于描述日期信息的,该类中很多方法取代了Date类的过时方法。
该类是一个抽象类,不能实例化对象。
2.常用方法:
static Calendar getInstance()
用户获取当前类的引用
该方法的返回值真正指向的是Calendar类的子类对象,这是多态的第三种用法。
void set(int year, int month, int date, int hourOfDay, int minute, int second)
根据参数设置年月日时分秒。
Date getTime()
用于将Calendar类型转换为Date类型并返回。
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class TestDate {
public static void main(String[] args) throws Exception{
// 每个地区的标准时间是不一样的,因为存在时区的差异新,中国属于东八区,因此标准时间是1970年1月1日8时0分0秒
// 1.使用各种不同的版本构造对象
Date d1 = new Date();
System.out.println("d1=" + d1);// 打印系统时间
Date d2 = new Date(1000);
System.out.println("d2=" + d2);// 1000毫秒
// Date d3 = new Date(2008 - 1900, 8 - 1, 8, 20, 8, 8);//
// 此方法已过时,年份减去1900年,月份减去1,表示当前计算时间
// System.out.println("d3=" + d3);
//2.使用取代的方法来构造年月日时分秒
//2.1获取calendar类型的对象
Calendar c1 = Calendar.getInstance();
//2.2调用set()方法来设置年月日时分秒
c1.set(2008, 8-1,8,20,8,8);
//2.3转换成Date类型
Date d6 = c1.getTime();
System.out.println("d6 = "+d6);
//3.调整输出格式
long msec = d1.getTime();
System.out.println("距离当前系统时间标准时间的好秒速msec=" + msec);
d1.setTime(2000);
System.out.println("d1 = " + d1);// 距离1970 1 1 8 0 2
// 1.创建SimpleDateFormat类型的对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
// 将上述日期信息按照构造方法指定的格式来转换成字符串类型
String str = sdf.format(d1);
System.out.println(str);
//根据字符串转换成日期类型
Date d5 = sdf.parse(str);
System.out.println(d5);
}
}