Date和Calendar

处理日期,时间;

大部分的方法已过时,不推荐使用,但是你使用过时的方法也不会报错。

Date() 分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。

Date(long date)  分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。

SimpleDateFormat

java.text.SimpleDateFormat

SimpleDateFormat 是一个与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。

SimpleDateFormat(String pattern)  用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。

public final String format(Date date)将一个 Date 格式化为日期/时间字符串。

 public Date parse(String source) throws ParseException:把字符串source表示的时间按source的格式转成Date对象。

练习:String与Date的相互转化

按某种时间格式来输出指定的String类型时间

date2String

format

 

把某种时间格式的String时间转成Date类型时间

string2Date

parse

package reviewDemo;

import java.text.SimpleDateFormat;

import java.util.Date;

public class Demo28 {

    public static void main(String[] args) throws Exception {

       

        Date d = new Date();

        System.out.println(d);//获取当前时间

       

        //格式化

        SimpleDateFormat  sd = new SimpleDateFormat("yyyy-M-d HH:mm:ss E");

       

        String s = sd.format(d);//这个方法继承于SimpleDateFormat的父类DateFormat类!

        System.out.println(s);

       

        //反格式化

        d = sd.parse(s);

        System.out.println(d);

    }

}

Calendar

推荐使用处理日期和时间的类Calendar;

是抽象类,不能实例化,通过

static Calendar getInstance() 获得一个Calendar对象。

int get(int field):返回指定日历字段值

静态常量:

YEAR 表示年的字段数字。

MONTH 表示月份字段数字,月份范围是[0,11]。

DATE 表示一个月中的某天。

DAY_OF_MONTH 表示一个月中的某天。

DAY_OF_WEEK 表示一个星期中的某天。

HOUR_OF_DAY / HOUR 表示第几小时

MINUTE  表示第几分钟

SECOND       表示第几秒

Date getTime() 返回一个表示此 Calendar 时间值的 Date 对象。

void set(int year, int month, int date, int hour, int minute, int second)   设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。

abstract void add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量。

若 amount为负数,则减去一天,

若 amount为正数 ,则加上一天

例子

package reviewDemo;

import java.util.Calendar;

import java.util.Date;

public class Demo29 {

    public static void main(String[] args) {

        Calendar c = Calendar.getInstance();

        System.out.println(c);

       

        Date d = c.getTime();

        System.out.println(d);

       

        /**

         * void set(int year, int month, int date, int hour, int minute, int second)  

         * 设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。

         */

       

        c.set(2015, 07, 15, 12, 24, 55);

        d = c.getTime();

        System.out.println(d);

       

        c.add(Calendar.DAY_OF_MONTH, 3);

        d = c.getTime();

        System.out.println(d);

    }

}

我的总结:注意常查看api

Eg:“查询距今最近三天内的记录”,这里的‘三天内’是什么时间段?

将当前日期时间转换为 只获取当天的00:00:00

如: 2011-08-08 12:12:12 转化为 2011-08-08 00:00:00、

package reviewDemo;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

public class Demo30 {

    public static void main(String[] args) {

       

        Calendar c = Calendar.getInstance();

        Date d = c.getTime();

        System.out.println(d);

       

        SimpleDateFormat sd = new SimpleDateFormat("yyyy-M-d HH:mm:ss E");

       

        String s = sd.format(d);

        System.out.println(s);

       

        c.set(2015, 8, 23, 13, 24, 15);

        d = c.getTime();

        System.out.println(sd.format(d));

        c.add(Calendar.DAY_OF_MONTH, -3);

        d = c.getTime();

        System.out.println(sd.format(d));

    }

}

输出:

Thu Jul 04 08:56:51 CST 2013

2013-7-4 08:56:51 星期四

2015-9-23 13:24:15 星期三

2015-9-20 13:24:15 星期日

猜你喜欢

转载自www.cnblogs.com/fanweisheng/p/11132253.html
今日推荐