Date类
注意:是java.util.Date; 而非 java.sql.Date,此类是给数据库访问的时候使用的
时间原点概念
Java中的时间原点,其对应的日期是1970年1月1日 8点0分0秒 。 (为什么是8点,因为中国的太平洋时区是UTC-8,刚好和格林威治时间差8个小时)
所有的日期,都是以为这个0点为基准,每过一毫秒,就+1。
创建日期对象
import java.util.Date;
public class TestDate {
public static void main(String[] args) {
// 当前时间
Date d1 = new Date();
System.out.println("当前时间:");
System.out.println(d1);
System.out.println();
// 从1970年1月1日 早上8点0分0秒 开始经历的毫秒数
Date d2 = new Date(5000);
System.out.println("从1970年1月1日 早上8点0分0秒 开始经历了5秒的时间");
System.out.println(d2);
}
}
getTime
getTime() 得到当前时间的long型的整数
这个整数代表 从1970.1.1 08:00:00:000 开始 每经历一毫秒,增加1
public class TestDate {
public static void main(String[] args) {
//注意:是java.util.Date;
//而非 java.sql.Date,此类是给数据库访问的时候使用的
Date now= new Date();
//打印当前时间
System.out.println("当前时间:"+now.toString());
//getTime() 得到一个long型的整数
//这个整数代表 1970.1.1 08:00:00:000,每经历一毫秒,增加1
System.out.println("当前时间getTime()返回的值是:"+now.getTime());
Date zero = new Date(0);
System.out.println("用0作为构造方法,得到的日期是:"+zero);
}
}
日期格式的转换
1.简单打印出日期
如果有一个日期Date d; 可以直接使用System.out.println(d)
2打印出特定形式日期 可以使用SimpleDateFormat 这个类
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDate {
public static void main(String[] args) {
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS" );
Date d= new Date();
String str = sdf.format(d);
System.out.println("当前时间通过 yyyy-MM-dd HH:mm:ss SSS 格式化后的输出: "+str);
SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy-MM-dd" );
Date d1= new Date();
String str1 = sdf1.format(d1);
System.out.println("当前时间通过 yyyy-MM-dd 格式化后的输出: "+str1);
}
}
在创建SimpleDateFormat的对象时 设定其格式,用方法format 处理日期对象,返回字符串。
3字符串转换成日期
SimpleDateFormat中的 parse方法可以将字符串转换成Date对象。(SimpleDateFormat 实例化时的 日期形式一定要与处理的字符串日期形式一直,否则exception)
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDate {
public static void main(String[] args) {
SimpleDateFormat sdf =new SimpleDateFormat("yyyy/MM/dd HH:mm:ss" );
String str = "2016/1/5 12:12:12";
try {
Date d = sdf.parse(str);
System.out.printf("字符串 %s 通过格式 yyyy/MM/dd HH:mm:ss %n转换为日期对象: %s",str,d.toString());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Calender 类
Calendar c = Calendar.getInstance(); 获取当期日期 的日历对象
Date d = c.getTime(); 将某个日期的日历对象转化为日期对象
c.setTime(d2); 将c这个日历对象的日期调成和d2一致
C.add(int field,int amount) 在指定的月,日,年进行加减
c.set(int field ,int amount) 设定,特定的月,日,年