本帖最后由 仲伟 于 2013-5-14 17:09 编辑
1、Date类
构造方法
Date date1 = new Date();当前时间
Date date2 = new Date(long date);
与这个结合
long date=system.currentTimeMillis();
long date=date.getTime()
after(Date when)
测试此日期是否在指定日期之后。
before(Date when)
测试此日期是否在指定日期之前。
compareTo(Date anotherDate)
比较两个日期的顺序。
equals(Object obj)
比较两个日期的相等性- import java.util.Date;
- import java.util.Random;
- public class DateTest {
-
- public static void main(String[] args) {
- //当前时间
- Date date = new Date();
- //after(Date when)
- //测试此日期是否在指定日期之后。
- Date dateAfter = new Date(date.getTime()-1000);
- if(date.after(dateAfter)){
- System.out.println(dateAfter+"是在"+date+"之后");
- }
- //before(Date when)
- //测试此日期是否在指定日期之前。
- Date beforeDate = new Date(date.getTime()+1000);
- if(date.before(beforeDate)){
- System.out.println(beforeDate+"是在"+date+"之后");
- }
- //compareTo(Date anotherDate)
- //比较两个日期的顺序。
- Date randomDate = new Date(date.getTime()+1000);
- //如果参数 Date 等于此 Date,则返回值 0;
- //如果此 Date 在 Date 参数之前,则返回小于 0 的值;
- //如果此 Date 在 Date 参数之后,则返回大于 0 的值
- if(date.compareTo(randomDate)>0){
- System.out.println(date+"大于"+randomDate);
- }else{
- System.out.println(date+"小于"+randomDate);
- }
- Date eqDate = new Date(date.getTime());
- // equals(Object obj)
- //比较两个日期的相等性 \
- if(date.equals(eqDate)){
- System.out.println("日期相通");
- }
- }
- }
复制代码 2、DateFormat 类
构造方法
DateFormat df = new DateFormat();
String format(Date date)
将一个 Date 格式化为日期/时间字符串。
Date parse(String source)
从给定字符串的开始解析文本,以生成一个日期。
Calendar getCalendar()
获取与此日期/时间格式器关联的日历。
void setCalendar(Calendar newCalendar)
设置此日期格式所使用的日历。
TimeZone getTimeZone()
获取时区。
void setTimeZone(TimeZone zone)
为此 DateFormat 对象的日历设置时区。
3、SimpleDateFormat类型 是DateFormat的子类
Date parse(String text, ParsePosition pos)
解析字符串的文本,生成 Date。
StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition pos)
将给定的 Date 格式化为日期/时间字符串,并将结果添加到给定的 StringBuffer。- import java.text.DateFormat;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.TimeZone;
- public class DateFormatAndSimpleDateFormat {
-
- public static void main(String[] args) throws Exception {
- //构造方法
- DateFormat df = DateFormat .getInstance();
-
- //将一个 Date 格式化为日期/时间字符串。
- Date date = new Date();
- String Str2Date = df.format(date);
- System.out.println("日期编程字符串:"+Str2Date);
-
- //从给定字符串的开始解析文本,以生成一个日期。
- Date date2Str = df.parse(Str2Date);
- System.out.println("字符串编程日期"+date2Str);
-
- //获取与此日期/时间格式器关联的日历。
- Calendar calendar =df.getCalendar();
- calendar.add(Calendar.YEAR, 1);
- System.out.println("变成日历:"+calendar.getTime());
-
- //设置此日期格式所使用的日历。
- //当前时间
- Calendar calendar1 = Calendar.getInstance();
- df.setCalendar(calendar1);
- System.out.println("改变日历"+calendar.getTime());
-
- //获取时区。
- TimeZone timeZone = df.getTimeZone();
- System.out.println("获取时区"+timeZone.getID());
-
- //为此 DateFormat 对象的日历设置时区。
- df.setTimeZone(timeZone);
- System.out.println("修改时区"+timeZone.getID());
- }
- }
复制代码 4、Calendar 类型
Calendar rightNow = Calendar.getInstance();
Date getTime()
返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。
void setTime(Date date)
使用给定的 Date 设置此 Calendar 的时间。
boolean isSet(int field)
确定给定日历字段是否已经设置了一个值,其中包括因为调用 get 方法触发内部字段计算而导致已经设置该值的情况
void clear()
将此 Calendar 的所日历字段值和时间值(从历元至现在的毫秒偏移量)设置成未定义。
set方法
设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值
设置日历字段 YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY 和 MINUTE 的值。
设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。
add(int field, int amount)
根据日历的规则,为给定的日历字段添加或减去指定的时间量- import java.util.Calendar;
- import java.util.Date;
- public class CalendarDome {
- public static void main(String[] args) {
- //new 一个日历类型
- Calendar rightNow = Calendar.getInstance();
- //返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。
- Date date =rightNow.getTime();
- System.out.println("rightNow 变成时间类型"+date);
-
- // 使用给定的 Date 设置此 Calendar 的时间。
- Date Afterdate = new Date(date.getTime()+10000000);
- rightNow.setTime(Afterdate);
- System.out.println("修改之后的时间:"+rightNow.getTime());
-
- // set方法
- // 设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值
- // 设置日历字段 YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY 和 MINUTE 的值。
- rightNow.set(Calendar.MONTH, 1);
- System.out.println("set方法1:"+rightNow.getTime());
- rightNow.set(Calendar.YEAR, Calendar.MONTH, Calendar.DAY_OF_MONTH+1);
- System.out.println("set方法2"+rightNow.getTime());
- rightNow.set(Calendar.YEAR , Calendar.MONTH,Calendar.DAY_OF_MONTH, Calendar.HOUR_OF_DAY, Calendar.MINUTE);
- System.out.println("set方法3"+rightNow.getTime());
-
- //add(int field, int amount)
- //根据日历的规则,为给定的日历字段添加或减去指定的时间量
- rightNow.add(Calendar.YEAR, 2);
- System.out.println("add方法1"+ rightNow.getTime());
-
- //将此 Calendar 的所日历字段值和时间值(从历元至现在的毫秒偏移量)设置成未定义。
- rightNow.clear();
- System.out.println(rightNow.getTime());
- }
- }
复制代码 5、date 类型和SimpleDateFormate类转化
SimpleDateFormate sdf = new SimpleDateFormate("yyyy-MM-dd");
Date date = new Date();
String StrDate=sdf.formate(date);
Date date1 = sdf.parse(StrDate);
这叫做日期的格式化
6、Date类和SimpleDateFormate类中都有比较时间的方法
Date 类型 和 Calendar类型转化
Calendar new = Calendar.getIntance();
Date date =new.getTime();
Calendar now1 = Calendar.getInstance();
Date date = new Date(111111222);
now1.setTime(date);
为了时间计算
7、问题总结
Date 问题
http://bbs.itheima.com/thread-49823-1-1.html
Date中的一个问题
http://bbs.itheima.com/thread-38841-1-1.html
Date类 第18天视频
http://bbs.itheima.com/thread-37569-1-1.html
时间戳与Date/String之间的转换
http://bbs.itheima.com/thread-35372-1-1.html
Date日期
http://bbs.itheima.com/thread-26088-1-1.html
|