• 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 星期日

  • 相关阅读:
    Codeforces 631A Interview【模拟水题】
    Codeforces 651E Table Compression【并查集】
    Codeforces 651D Image Preview【二分+枚举】
    Codeforces 651C Watchmen【模拟】
    Codeforces 651B Beautiful Paintings【贪心】
    18.06.26 16年期末10:游览规划
    18.06.25 POJ4129 16年期末09:变换的迷宫
    18.06.25 POJ4150 16年期末07:上机
    18.06.25 16年期末06 42点
    18.06.25 16年期末01-05集合
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11132253.html
Copyright © 2020-2023  润新知