一、Date类
Date 类提供两个构造方法来实例化 Date 对象,分别是Date()方法和Date(long l)方法。
getTime() 方法得到一个long型的整数,该整数代表从1970.1.1 08:00:00:000 开始,每经历一毫秒,增加1。
System.currentTimeMillis()方法获取当前系统时间的毫秒数。
二、SimpleDateFormat类
SimpleDateFormat类用于日期格式化。字符串转换成日期格式时,SimpleDateFormat类的格式需与要转换的字符串格式一致,否则会抛出异常
三、Calendar类
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class NewTest {
public static void main(String[] args) {
Date date = new Date(); //获取当前日期时间
Date date2 = new Date(0); //获取时间原点 其对应的日期是1970年1月1日 8点0分0秒
Date date3 = new Date(5000); //从时间原点往后的毫秒数
Date date4 = new Date(-5000); //从时间原点往前的毫秒数
System.out.println("date = " +date);
System.out.println("date2 = " +date2);
System.out.println("date3 = " +date3);
System.out.println("date4 = " +date4);
System.out.println("Date.getTime() \t\t\t返回值: "+date.getTime());
//通过System.currentTimeMillis()获取当前时间的毫秒数
System.out.println("System.currentTimeMillis() \t返回值: "+System.currentTimeMillis());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(date2);
System.out.println("当前时间通过 yyyy-MM-dd HH:mm:ss格式化后的输出: "+str);
String str2 = "2020.12.31 10:19:52";
//格式(yyyy.MM.dd HH:mm:ss)要和字符串格式保持一致,如果不一样就会抛出解析异常ParseException
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
try {
Date d2 = sdf1.parse(str2);
System.out.println("str2通过 yyyy.MM.dd HH:mm:ss格式化为日期对象:" +d2.toString());
}catch(ParseException e) {
e.printStackTrace();
}
Calendar c = Calendar.getInstance();
System.out.println("当前时间:\t\t" +c.getTime());
c.set(Calendar.YEAR,2018);
System.out.println("设置后的时间:\t" +sdf.format(c.getTime()));
c.set(2019, 2, 0); //月份从0开始,即0表示1月。日期设置为0,表示前一个月的最后一天。
System.out.println("设置后的时间:\t" +sdf.format(c.getTime()));
c.add(Calendar.YEAR, 1);
c.add(Calendar.MONTH, 1);
c.add(Calendar.DATE, -1);
System.out.println("设置后的时间:\t" +sdf.format(c.getTime()));
}
}
四、输出结果