时间类
- java.lang.System类
- java.util.Date类:表示特定时间
- java.text.SimpleDateFormat类:用来对日期进行格式化
- java.util.Calendar( 日历)类:对日期个字段进行操作
System类
- currentTimeMillis() 返回现在时间与1970年1月1日0时0分0秒的时间差
Date类
- java.util.Date类
- java.sql.Date类(暂时不学)
构造器
-
创建当前时间的Date对象:new Date();
-
创建指定毫秒数:new Date( 毫秒数);
常用方法 -
toString()显示年月日(把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue,Wed, Thu, Fri, Sat),zzz是时间标准)
-
getTime()得到毫秒数
package DateTime;
import java.util.Date;
public class Demo01 {
public static void main(String[] args) {
//构造方法一:创建当前时间的的Date对象
Date date = new Date();//
System.out.println(date.toString());
//构造方法二:毫秒为参数
Date date2 = new Date(date.getTime());//getTime()得到目前时间时间戳
System.out.println(date2);
}
}
- java.util.Date与java.sql.Date互转:通过getTime()与构造方法。
java.text.SimpleDateFormat类
- 对日期Date类的格式化与解析
- 格式化:日期——>文本。文本——>日期
例子
package DateTime;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo02 {
public static void main(String[] args) throws ParseException {
Date date1=new Date();
SimpleDateFormat sdf=new SimpleDateFormat();//实例化一个SimpleDateFormat对象,无参数输出默认格式
System.out.println("格式化之前:"+date1);
System.out.println("格式化之后:"+sdf.format(date1));//格式化
SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年mm月dd日");//实例化一个有参数的SimpleDateFormat对象
System.out.println("有参数格式化之后:"+sdf2.format(date1));
System.out.println("***************解析******************");
String str1="2018年6月9日";
String str2="2020/8/5 下午8:28";
System.out.println(sdf2.parse(str1));//解析时要与相应的格式相对应
System.out.println(sdf.parse(str2));
}
}
-
类的实例化方法
- SimpleDateFormat() :默认的模式和语言环境创建对象
- public SimpleDateFormat(String pattern) :该构造方法可以用参数pattern指定的格式创建一个对象,该对象调用:
-
格式化方法:public String format(Date date) 方法格式化时间对象date
-
解析方法: public Date parse(String source) 从给定字符串的开始解析文本,以生成一个日期
Calendar类
-
是一个抽象类,主要用于完成日期字段之间的互相操作
-
java.util.Calendar类
-
实例化方法
- 使用Calendar.getInstance()方法
- 使用调用它的子类GregorianCalendar的构造器。
-
常用方法
- public void set(int field,int value)
- public void add(int field,int amount)
- public final Date getTime()
- public final void setTime(Date date)
-
常用字段:YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY 、MINUTE、SECOND
package DateTime;
import java.util.Calendar;
import java.util.Date;
public class Demo08 {
public static void main(String[] args) {
// 实例化方法:调用getInstance()/创建子类对象
Calendar ca = Calendar.getInstance();
// get
int day = ca.get(Calendar.DAY_OF_MONTH);// 当前时间时这个月的第几天
System.out.println(day);
System.out.println(ca.get(Calendar.DATE));
// set
ca.set(Calendar.DAY_OF_MONTH, 25);// void方法,改变了自己
//特别注意正确方法
int day1 = ca.get(Calendar.DAY_OF_MONTH);// 当前时间时这个月的第几天
System.out.println(day1);// 25
// add:减=加负数
ca.add(Calendar.DAY_OF_MONTH, 3);
int day2 = ca.get(Calendar.DAY_OF_MONTH);
System.out.println(day2);
// getTime:日历类——》date
Date date = ca.getTime();
System.out.println(date);
// setTime;Date——》日历类
Date date2 = new Date();
ca.setTime(date2);
int day3=ca.get(Calendar.DAY_OF_MONTH);
System.out.println(day3);
}
}
- 获取月份时:一月是0,二月是1,以此类推,12月是11
- 获取星期时:周日是1,周二是2 , 。。。。周六是7