zoukankan      html  css  js  c++  java
  • 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 星期日

  • 相关阅读:
    【leetcode】106. Construct Binary Tree from Inorder and Postorder Traversal
    【leetcode】105. Construct Binary Tree from Preorder and Inorder Traversal
    【leetcode】236. Lowest Common Ancestor of a Binary Tree
    【leetcode】235. Lowest Common Ancestor of a Binary Search Tree
    【leetcode】352. Data Stream as Disjoint Intervals
    【leetcode】897. Increasing Order Search Tree
    【leetcode】900. RLE Iterator
    BEC listen and translation exercise 26
    BEC listen and translation exercise 25
    BEC listen and translation exercise 24
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11132253.html
Copyright © 2011-2022 走看看