zoukankan      html  css  js  c++  java
  • java 时间类Date和Calendar

    Java的时间类经常用到,主要是两个类Date和Calendar,分别做下介绍。

    一、Date

    1、在 package java.util

    类定义如下:

    public class Date
    
        implements java.io.Serializable, Cloneable, Comparable<Date>{}

    类 Date 表示特定的瞬间,精确到毫秒。

    在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和解析日期字符串。Date 中的相应方法已废弃

    2、获取方式,new。

    Date  date = new Date();

    获取一个当前的时间。

    主要结合格式化类一起使用,时间格式化比较普遍使用:

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            Date  date = new Date();
            System.out.println("date:" + date);
            System.out.println("format Date:" + format.format(date));

    output:

    date:Wed Mar 06 12:26:42 CST 2019

    format Date:2019-03-06 12:26:42

    3、其他使用,比较时间大小。有三个函数:

    after(),before(),compareTo
    Calendar c = Calendar.getInstance();
            c.add(Calendar.DAY_OF_MONTH, -1);
            Date date1 = c.getTime();
            Date  date2 = new Date();
            System.out.println(date1.after(date2));//测试此日期是否在指定日期之后。date1比date2早,所以返回false
            System.out.println(date1.before(date2));//测试此日期是否在指定日期之前。date1比date2早,所以返回true
            //比较两个日期的顺序。
            //如果参数 Date 等于此 Date,则返回值 0;如果此 Date 在 Date 参数之前,则返回小于 0 的值;如果此 Date 在 Date 参数之后,则返回大于 0 的值。
            System.out.println(date1.compareTo(date2));//测试此日期是否在指定日期之前。date1比date2早,所以返回-1

    二、Calendar

    推荐使用

    1、在package java.util;

    定义:

    public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar> {」

    是个抽象类,所以无法通过new关键字创建对象。

    通过调用方法:

    public static Calendar getInstance()

    来获取当前时间。

    定义了很多整型常量值,月份,星期等。比如:SUNDAY--SATURDAY,是1--7;具体查看api文档:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh

    使用示例:

    // 输出当前时刻
            Calendar c = Calendar.getInstance();
            int year = c.get(Calendar.YEAR);
            int month = c.get(Calendar.MONTH) + 1;
            int day = c.get(Calendar.DAY_OF_MONTH);
            int hour = c.get(Calendar.HOUR_OF_DAY);//Calendar.HOUR是12分制
            int minute = c.get(Calendar.MINUTE);
            int seconds = c.get(Calendar.SECOND);
            System.out.println("now:" + year + "年" + month + "月" + day + "号,"
                    + hour + "时" + minute + "分" + seconds + "秒"
                    );
            // 输出前一天的当前时刻
            c.add(Calendar.DAY_OF_MONTH, -1);
    //        c.set(Calendar.DAY_OF_MONTH,c.get(Calendar.DAY_OF_MONTH) + -1);//sencond method to get last day
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            System.out.println("format Calendar:" + format.format(c.getTime()));

    output:

    now:2019年3月6号,12时59分34秒

    format Calendar:2019-03-05 12:59:34

     

     

  • 相关阅读:
    BZOJ 4016: [FJOI2014]最短路径树问题
    BZOJ 2599: [IOI2011]Race
    BZOJ 2152: 聪聪可可
    Codeforces Round #532 (Div. 2) Solution
    KEYENCE Programming Contest 2019 Solution
    AISing Programming Contest 2019 Solution
    Educational Codeforces Round 58 Solution
    2018-2019 ACM-ICPC, Asia East Continent Finals Solution
    Codeforces Round #530 (Div. 2) Solution
    Hello 2019 Solution
  • 原文地址:https://www.cnblogs.com/luoa/p/10482610.html
Copyright © 2011-2022 走看看