获取Date类中的年、月、日、时、分、秒以及星期可以使用Date类的getYear()、getMonth()、getDate()、 getHours()、getMinutes()、getSeconds()、getDay()方法 不过新版本JDK中已经不再推荐使用这些方法,改由Calender来进行处理 int getDaysBetween(java.util.Calendar d1, java.util.Calendar d2) { Calendar begin = d1.after(d2)?d2:d1, end = d1.after(d2)?d1:d2; int days = end.get(java.util.Calendar.DAY_OF_YEAR) - begin.get(java.util.Calendar.DAY_OF_YEAR); int y2 = end.get(java.util.Calendar.YEAR); if (begin.get(java.util.Calendar.YEAR) != y2) { begin = (java.util.Calendar) begin.clone(); do { days += begin.getActualMaximum(java.util.Calendar.DAY_OF_YEAR); begin.add(java.util.Calendar.YEAR, 1); } while (begin.get(java.util.Calendar.YEAR) != y2); } return days; }
Date是老版本的 calendar是現在用的比較多的了
区别就是Date差不多大部分都deprecated了 取而代之的是Calendar 功能类似的
Date本质就是一个long数值,从1970年到某个时间的毫秒数,我是这么理解的所有操作都可以用Date.getTime()得到毫秒数然后做运算。要格式化打印输出则使用SimpleDateFormat。(也可以用SimpleDateFormat来把某个格式的字符串格式化为Date) package com.test.my;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"); try { Date date1 = sdf.parse("2008-04-02 17:55:00"); Date date2 = sdf.parse("2008-04-02 18:00:00"); long delay = date2.getTime() - date1.getTime();//间隔的毫秒数 System.out.println("Delay:" + delay / 1000 + "seconds"); } catch (Exception e) { e.printStackTrace(); } } } sdf.format(Date)可以用来输出"2008-04-01 18:00:00"格式的字符串
getHours()、getMinutes()、getSeconds()、getDay()方法
不过新版本JDK中已经不再推荐使用这些方法,改由Calender来进行处理
int getDaysBetween(java.util.Calendar d1, java.util.Calendar d2)
{
Calendar begin = d1.after(d2)?d2:d1, end = d1.after(d2)?d1:d2;
int days = end.get(java.util.Calendar.DAY_OF_YEAR) -
begin.get(java.util.Calendar.DAY_OF_YEAR);
int y2 = end.get(java.util.Calendar.YEAR);
if (begin.get(java.util.Calendar.YEAR) != y2)
{
begin = (java.util.Calendar) begin.clone();
do
{
days += begin.getActualMaximum(java.util.Calendar.DAY_OF_YEAR);
begin.add(java.util.Calendar.YEAR, 1);
}
while (begin.get(java.util.Calendar.YEAR) != y2);
}
return days;
}
calendar是現在用的比較多的了
功能类似的
package com.test.my;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");
try {
Date date1 = sdf.parse("2008-04-02 17:55:00");
Date date2 = sdf.parse("2008-04-02 18:00:00"); long delay = date2.getTime() - date1.getTime();//间隔的毫秒数 System.out.println("Delay:" + delay / 1000 + "seconds");
} catch (Exception e) {
e.printStackTrace();
}
}
}
sdf.format(Date)可以用来输出"2008-04-01 18:00:00"格式的字符串