zoukankan      html  css  js  c++  java
  • Java日期和时间

    java.util包提供了Date类来封装当前的日期和时间,Date类提供两个构造函数聊实例化Date对象。

    Date()//使用当前日期和时间来初始化对象;
    
    Date(long millisec)//接收一个参数,该参数是从1970年1月1日起的毫秒数;

    创建Date对象后,可调用以下方法:

    序号 方法和描述
    1

    boolean after(Date date)

    若当调用此方法的Date对象在指定日期之后返回true,否则返回false

    2

    boolean before(Date date)


    若当调用此方法的Date对象在指定日期之前返回true,否则返回false

    3

    Object clone()

    返回此对象的副本

    4

    int compareTo(Date date)

    比较当调用此方法的Date对象和指定日期,两者相等时候反复0.调用对象在指定日期之前返回负数,在之后返回正数。

    5

    int compareTo(Object object)

    若object是Date类型则操作同等于compareTo(Date date),否则抛出ClassCastException

    6

    boolean equals(Object object)

    当调用此方法的Date对象和指定日期相等时候返回true,否则返回false

    7

    long getTime()

    返回自1970年1月1日 00:00:00GMT以来此Date对象表示的毫秒数

    8

    int hashTime()

    返回此对象的哈希码值

    9

    void setTime(long time)

    用自1970年1月1日 00:00:00GMT以后time毫秒数设置日期和时间

    10

    String toString()

    把此Date对象转换为以下形式的String:dow mon dd hh:mm:ss zzz yyyy其中dow是一周中的某天(Sun,Mon,Tue,Wed,Thu,Fri,Sat)

    获取当前日期时间

    import java.util.Date;
    
    public class DateDemo{
        public static void main(String args[]){
            Date date = new Date();//初始化Date对象
            System.out.println(date.toString());//使用toString()函数显示日期时间
        }
    }

    运行结果

    Tue Sep 03 22:49:12 CDT 2019

    ——————————————————————————

    日期比较(三种方法)

    1.getTime()方法获取两个日期,然后比较两个日期的值;

    2.before(),after(),equals();例如:一个月的12号比18号早,则new Date(99,2,12).before(new Date(99,2,18))返回true;

    3.compreTo()方法,由Comparable接口定义的,Date类实现了这个接口;

    ——————————————————————————————————————

    使用SimpleDateFormat格式化日期

    SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类,SimpleDateFormat允许你选择任何用户自定义日期时间来运行,例如:

    import java.util.*;
    import java.text.*;
    
    public class DateDemo{
        public static void main(String args[]){
            Date nowDate = new Date();
            SimpleDateFormat ft =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
          //确立转换格式 System.out.println(ft.format(nowDate)); } }

    运行结果

    2019-09-03 23:11:51

    ——————————————————————

    使用print格式化日期

    以%t开头以字母(以下的字母)结尾

    转换符 说明 事例
    c 包括全部日期和时间信息 星期二 九月 03 23:23:12 CST 2019 
    F "年-月-日"格式 2019-09-05
    D “月/日/年”格式 10/23/05
    r “HH:MM:SS PM”格式,12小时 05:25:51 下午
    T “HH:MM:SS”格式,24小时 05:25:51
    R "HH:MM"格式,24小时 05:25

    事例:

    import java.util.Date;
    
    public class DateDemo{
        public static void main(String args[]){
            Date date =new Date();
            System.out.println("HH:MM:SS格式:%tT%n",date);
        }
    }

    运行结果

    HH:MM:SS格式:23:20:12

    另外:

    重复提供日期 ,可以利用一个格式化字符串之处要被格式化的参数索引

    索引跟在%后面,而且必须以$结束("%1$d",...)

    或者,使用<标志,表示先前被格式化的参数再次被使用("%s %<te",...)

    _________________________________

    解析字符串为时间

    SimpleDateFormat类的parse()方法

    import java.util.*;
    import java.text.*;
    
    public class DateDemo{
        public static void main(String args[]){
            SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
            String input = "1818-11-11";
            System.out.println(input);
            Date t;
    
            try{
                t = ft.parse(input);
                System.out.println(t);
            }catch(ParseException e){
                System.out.println(ft);
            }
        }
    }

    运行结果

    1818-11-11
    Wed Nov 11 00:00:00 UTC 1818

    ——————————————————————————

    休眠:sleep()使当前线程进入停滞状态,,让出CPU的使用、目的是不让当前线程独自霸占该进程所获得的CPU资源,留一定时间给其他线程执行机会。

    休眠3秒:

    import java.util.*;
    
    public class SleepDemo{
        public static void main(String args[]){
            try{
                System.out.println(new Date()+"
    ");
                Thread.sleep(1000*3);//休眠三秒
                System.out.println(new Date()+"
    ");
            }catch(Exception e){
                System.out.println("zzz");
            }
        }
    }

    运行结果

    Thu Sep 17 02:44:50 UTC 2015
    
    Thu Sep 17 02:44:53 UTC 2015

    ————————————————————————————————

    测量时间间隔(单位:毫秒)

    import java.utill.*;
    public class Demo{
         public static void main(String args[]){
            try{
                long start = System.currentTimeMillis();
                System.out.println(new Date()+"
    ");
                Thread.sleep(5*60*10);
                System.out.println(new Date()+"
    ");
                long end = System.currentTimeMillis();
                long diff = end - start;
                System.out.println(diff);
            }catch(Exception e){
                System.out.println("……");
            }
        }
    }

    运行结果

    Thu Sep 17 02:43:18 UTC 2015
    
    Thu Sep 17 02:43:21 UTC 2015
    
    3031

    ——————————————————————

    Calendar类

    抽象类,比Date类的功能要强大

    Calendar a = Calendar.getInstance();//创建一个Calendar对象,默认当前系统日期
    Calendar a = Calendar.getInstance();
    a.set(2019,9-1,18);//创建一个指定日期(2019年9月18日)的Calendar对象,
    描述
    Calendar.YEAR 年份
    Calendar.MONTH 月份
    Calendar.DATE 日期
    Calendar.DAY_OF_MONTH 日期,和上面的字段意义完全相同
    Calendar.HOUR 12小时制的小时
    Calendar.HOUR_OF_DAY 24小时制的小时
    Calendar.MINUTE 分钟
    Calendar.SECOND
    Calendar.DAY_OF_WEEK 星期几
    Calendar类对象信息的设置
    set设置
    1.Calendar c = Calendar.getInstance();
    2.public final void set(int year,int month,int date)
    3.c.set(2019,9,18)

    add设置

    1.Calendar c = Calendar.getInstance();
    2.c.add(Calendar.DATE,10);//c对象的日期加上10,c表示为10天后的日期,其他只也会重新计算


    GregorianCalendar类
    Calendar类实现公历日历,GregorianCalendar类是Calendar类的一个具体实现。
  • 相关阅读:
    【转】 矩阵构造方法
    CODEVS1187 Xor最大路径 (Trie树)
    POJ2001 Shortest Prefixes (Trie树)
    CODEVS1079 回家 (最短路)
    CODEVS2144 砝码称重2 (哈希表)
    CODEVS1380 没有上司的舞会 (树形DP)
    JAVA 多态和异常处理作业——动手动脑以及课后实验性问题
    再读大道之简第七章第八章
    JAVA 接口与继承作业——动手动脑以及课后实验性问题
    再读大道至简第六章
  • 原文地址:https://www.cnblogs.com/jaci/p/11456619.html
Copyright © 2011-2022 走看看