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类的一个具体实现。
  • 相关阅读:
    【转】【SEE】基于SSE指令集的程序设计简介
    【转】【Asp.Net】asp.net服务器控件创建
    ControlTemplate in WPF ——ScrollBar
    ControlTemplate in WPF —— Menu
    ControlTemplate in WPF —— Expander
    ControlTemplate in WPF —— TreeView
    ControlTemplate in WPF —— ListBox
    ControlTemplate in WPF —— ComboBox
    ControlTemplate in WPF —— TextBox
    ControlTemplate in WPF —— RadioButton
  • 原文地址:https://www.cnblogs.com/jaci/p/11456619.html
Copyright © 2011-2022 走看看