java.util.Date 类:
表示特定的瞬间,精确到毫秒;
构造方法:
public Date() : 分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒),使用无参构造,可以自动设置当前系统时间的毫秒时刻 ;
package dateDemo;
import java.util.Date;
public class Demo01 {
public static void main(String[] args) {
Date d = new Date();
System.out.println(d); // 打印结果:Thu Aug 09 19:04:51 CST 2018
}
}
public Date(long date) : 分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数,指定long类型的构造参数,可以自定义毫秒时刻。
package dateDemo;
import java.util.Date;
public class Demo01 {
public static void main(String[] args) {
Date d = new Date(1589656971521L);
System.out.println(d); // 打印结果:Sun May 17 03:22:51 CST 2020
}
}
ps: 我国处在东八区,所以我国的基准时间为1970年1月1日8时0分0秒,使用println() 方法时,会自动调用Date类中的toString方法。Date类对Object类中的toString方法进行了覆盖重写,所以结果为指定格式的字符串。
常用方法:大多数已经淘汰 ,被 Calendar 代替
public long getTime () :把日期对象转换成对应的时间毫秒值。
package dateDemo;
import java.util.Date;
public class Demo01 {
public static void main(String[] args) {
Date d = new Date();
long time = d.getTime();
System.out.println(time); // 打印结果:1533813837553
}
}
java.text.DateFormat 类:
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。
格式化: 按照指定的格式,将 Date对象转化为 String对象
解析: 按照指定的格式,将 String对象转化为 Date对象
构造方法:
由于DateFormat为抽象类,不能直接使用,所以需要常用的子类java.text.SimpleDateFormat
。这个类需要一个模式(格式)来指定格式化或解析的标准。构造方法为:
public SimpleDateFormat(String pattern)
:用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。
参数pattern是一个字符串,代表日期时间的自定义格式。
package dateDemo;
import java.text.SimpleDateFormat;
public class Demo01 {
public static void main(String[] args) {
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");//其中字母严格区分大小写
}
}
常用方法:
public String format(Date date) : 将 Date对象转化为 String对象;
package dateDemo;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo01 {
public static void main(String[] args) {
SimpleDateFormat sdf =new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");//其中字母严格区分大小写
Date d = new Date();
String s = sdf.format(d);
System.out.println(s);
}
}
public Date parse(String str) : 将字符串解析为 Date对象;
package dateDemo;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo01 {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf =new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");//其中字母严格区分大小写
String s = "1995年10月18日 06时24分36秒";
Date date = sdf.parse(s);
System.out.println(date); //Wed Oct 18 06:24:36 CST 1995
}
}
java.util.Calendar 类:
日历类在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。
Calendar为抽象类,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,返回子类对象,
Calendar静态方法
public static Calendar getInstance()
:使用默认时区和语言环境获得一个日历
package dateDemo;
import java.util.Calendar;
public class Demo01 {
public static void main(String[] args) {
Calendar ca = Calendar.getInstance();
}
}
常用方法:
public int get(int field)
:返回给定日历字段的值。
public void set(int field, int value)
:将给定的日历字段设置为给定值。
package dateDemo;
import java.util.Calendar;
public class Demo01 {
public static void main(String[] args) {
Calendar ca = Calendar.getInstance();
ca.set(1995,10-1,18,6,30,24);
int year = ca.get(Calendar.YEAR); //获得年
System.out.println(year);
int month = ca.get(Calendar.MONTH) + 1; //获得月 (从0开始,可以+1使用)
System.out.println(month);
int day = ca.get(Calendar.DAY_OF_MONTH); // 获得日
System.out.println(day);
int week = ca.get(Calendar.DAY_OF_WEEK) - 1; //获得星期 (周几,周日为1,可以-1使用)
System.out.println(week);
int hour = ca.get(Calendar.HOUR_OF_DAY); //获得 小时 (24小时制)
System.out.println(hour);
int minute = ca.get(Calendar.MINUTE); //获得 分钟
System.out.println(minute);
int second = ca.get(Calendar.SECOND); //获得 秒
System.out.println(second);
}
}
public abstract void add(int field, int amount)
:根据日历的规则,为给定的日历字段添加或减去指定的时间量。
package dateDemo;
import java.util.Calendar;
public class Demo01 {
public static void main(String[] args) {
Calendar ca = Calendar.getInstance();
ca.add(Calendar.DAY_OF_MONTH,5);
System.out.println(ca.get(Calendar.DAY_OF_MONTH));
}
}
public Date getTime()
:返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
package dateDemo;
import java.util.Calendar;
import java.util.Date;
public class Demo01 {
public static void main(String[] args) {
Calendar ca = Calendar.getInstance();
Date time = ca.getTime();
System.out.println(time);
}
}