精华内容
参与话题
问答
  • Java 日期时间

    千次阅读 2019-04-01 11:21:10
    获取当前日期时间 Java中获取当前日期和时间很简单,使用 Date 对象的 toString() 方法来打印当前日期和时间,如下所示: 日期比较 Java使用以下三种方法来比较两个日期: 使用 getTime() 方法获取两个日期(自...

    在这里插入图片描述

    获取当前日期时间

    Java中获取当前日期和时间很简单,使用 Date 对象的 toString() 方法来打印当前日期和时间,如下所示:
    在这里插入图片描述

    日期比较

    Java使用以下三种方法来比较两个日期:

    • 使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。
    • 使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。
    • 使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。

    使用 SimpleDateFormat 格式化日期

    SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行。例如:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    package com.company;
    import java.util.Date;
    public class DateDemo {
        public static void main(String args[]) {
            // 初始化 Date 对象
            Date date = new Date();
    
            //c的使用
            System.out.printf("全部日期和时间信息:%tc%n",date);
            //f的使用
            System.out.printf("年-月-日格式:%tF%n",date);
            //d的使用
            System.out.printf("月/日/年格式:%tD%n",date);
            //r的使用
            System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date);
            //t的使用
            System.out.printf("HH:MM:SS格式(24时制):%tT%n",date);
            //R的使用
            System.out.printf("HH:MM格式(24时制):%tR",date);
        }
    }
    

    在这里插入图片描述
    定义日期格式的转换符可以使日期通过指定的转换符生成新字符串。这些日期转换符如下所示:

    //b的使用,月份简称
            String str=String.format(Locale.US,"英文月份简称:%tb",date);
            System.out.println(str);
            System.out.printf("本地月份简称:%tb%n",date);
            //B的使用,月份全称
            str=String.format(Locale.US,"英文月份全称:%tB",date);
            System.out.println(str);
            System.out.printf("本地月份全称:%tB%n",date);
            //a的使用,星期简称
            str=String.format(Locale.US,"英文星期的简称:%ta",date);
            System.out.println(str);
            //A的使用,星期全称
            System.out.printf("本地星期的简称:%tA%n",date);
            //C的使用,年前两位
            System.out.printf("年的前两位数字(不足两位前面补0):%tC%n",date);
            //y的使用,年后两位
            System.out.printf("年的后两位数字(不足两位前面补0):%ty%n",date);
            //j的使用,一年的天数
            System.out.printf("一年中的天数(即年的第几天):%tj%n",date);
            //m的使用,月份
            System.out.printf("两位数字的月份(不足两位前面补0):%tm%n",date);
            //d的使用,日(二位,不够补零)
            System.out.printf("两位数字的日(不足两位前面补0):%td%n",date);
            //e的使用,日(一位不补零)
            System.out.printf("月份的日(前面不补0):%te",date);
    

    在这里插入图片描述

    解析字符串为时间

    SimpleDateFormat 类有一些附加的方法,特别是parse(),它试图按照给定的SimpleDateFormat 对象的格式化存储来解析字符串。例如:

    package com.company;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class parse {
        public static void main(String args[]) {
            SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
    
            String input = args.length == 0 ? "1818-11-11" : args[0];
    
            System.out.print(input + " Parses as ");
    
            Date t;
    
            try {
                t = ft.parse(input);
                System.out.println(t);
            } catch (ParseException e) {
                System.out.println("Unparseable using " + ft);
            }
        }
    }
    
    $ java DateDemo
    1818-11-11 Parses as Wed Nov 11 00:00:00 GMT 1818
    $ java DateDemo 2007-12-01
    2007-12-01 Parses as Sat Dec 01 00:00:00 GMT 2007
    

    测量时间

    下面的一个例子表明如何测量时间间隔(以毫秒为单位):

    package com.company;
    
    import java.util.Date;
    
    public class DiffDemo {
        public static void main(String args[]) {
            try {
                long start = System.currentTimeMillis( );
                System.out.println(new Date( ) + "\n");
                Thread.sleep(5*60*10);
                System.out.println(new Date( ) + "\n");
                long end = System.currentTimeMillis( );
                long diff = end - start;
                System.out.println("Difference is : " + diff);
            } catch (Exception e) {
                System.out.println("Got an exception!");
            }
        }
    }
    

    在这里插入图片描述
    在这里插入图片描述

    package com.company;
    
    import java.util.Calendar;
    import java.util.GregorianCalendar;
    
    public class GregorianCalendarDemo {
        public static void main(String args[]) {
            String[]  months= {
                    "Jan", "Feb", "Mar", "Apr",
                    "May", "Jun", "Jul", "Aug",
                    "Sep", "Oct", "Nov", "Dec"};
    
            int year;
            // 初始化 Gregorian 日历
            // 使用当前时间和日期
            // 默认为本地时间和时区
            GregorianCalendar gcalendar = new GregorianCalendar();
            // 显示当前时间和日期的信息
            System.out.print("Date: ");
            System.out.print(months[gcalendar.get(Calendar.MONTH)]);
            System.out.print(" " + gcalendar.get(Calendar.DATE) + " ");
            System.out.println(year = gcalendar.get(Calendar.YEAR));
            System.out.print("Time: ");
            System.out.print(gcalendar.get(Calendar.HOUR) + ":");
            System.out.print(gcalendar.get(Calendar.MINUTE) + ":");
            System.out.println(gcalendar.get(Calendar.SECOND));
    
            // 测试当前年份是否为闰年
            if(gcalendar.isLeapYear(year)) {
                System.out.println("当前年份是闰年");
            }
            else {
                System.out.println("当前年份不是闰年");
            }
        }
    }
    
    展开全文
  • Java日期时间

    千次阅读 2018-08-20 15:06:26
    1、Data日期时间简介 java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。 第一个构造函数使用当前日期和时间来初始化对象。 Date( ) 第二个构造函数接收一个...

    1、Data日期时间简介

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

    第一个构造函数使用当前日期和时间来初始化对象。

    Date( )

    第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。

    Date(long millisec)

    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 obj)
    若obj是Date类型则操作等同于compareTo(Date) 。否则它抛出ClassCastException。
    6 boolean equals(Object date)
    当调用此方法的Date对象和指定日期相等时候返回true,否则返回false。
    7 long getTime( )
    返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
    8 int hashCode( )
     返回此对象的哈希码值。
    9 void setTime(long time)
    用自1970年1月1日00:00:00 GMT以后time毫秒数设置时间和日期。
    10 String toString( )
    把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。

    2、使用SimpleDateFormat格式化日期

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

    实例

    import java.util.*;
    import java.text.*;
     
    public class DateDemo {
       public static void main(String args[]) {
     
          Date dNow = new Date( );
          SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
     
          System.out.println("Current Date: " + ft.format(dNow));
       }
    }

    这一行代码确立了转换的格式,其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。

    注意:有的格式大写,有的格式小写,例如 MM 是月份,mm 是分;HH 是 24 小时制,而 hh 是 12 小时制。

    3、日期时间格式化编码

    字母 描述 示例
    G 纪元标记 AD
    y 四位年份 2001
    M 月份 July or 07
    d 一个月的日期 10
    h  A.M./P.M. (1~12)格式小时 12
    H 一天中的小时 (0~23) 22
    m 分钟数 30
    s 秒数 55
    S 毫秒数 234
    E 星期几 Tuesday
    D 一年中的日子 360
    F 一个月中第几周的周几 2 (second Wed. in July)
    w 一年中第几周 40
    W 一个月中第几周 1
    a A.M./P.M. 标记 PM
    k 一天中的小时(1~24) 24
    K  A.M./P.M. (0~11)格式小时 10
    z 时区 Eastern Standard Time
    ' 文字定界符 Delimiter
    " 单引号 `

    4、使用printf格式化日期时间

    转  换  符

    说    明

    示    例

    c

    包括全部日期和时间信息

    星期一 八月 20 00:20:54 CST 2018

    F

    "年-月-日"格式

    2018-08-20

    D

    "月/日/年"格式

    08/20/18

    r

    "HH:MM:SS PM"格式(12时制)

    12:20:54 上午

    T

    "HH:MM:SS"格式(24时制)

    00:20:54

    R

    "HH:MM"格式(24时制)

    00:20

    更多 printf 解析可以参见:Java 格式化输出 printf 例子

    实例

    import java.util.Date;
     
    public class DateDemo {
     
      public static void main(String args[]) {
         // 初始化 Date 对象
         Date date = new Date();
     
         //c的使用  
        System.out.printf("全部日期和时间信息:%tc%n",date);          
        //f的使用  
        System.out.printf("年-月-日格式:%tF%n",date);  
        //d的使用  
        System.out.printf("月/日/年格式:%tD%n",date);  
        //r的使用  
        System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date);  
        //t的使用  
        System.out.printf("HH:MM:SS格式(24时制):%tT%n",date);  
        //R的使用  
        System.out.printf("HH:MM格式(24时制):%tR",date);  
      }
    }

    以上程序编译结果如下:

    全部日期和时间信息:星期一 八月 20 00:47:22 CST 2018
    年-月-日格式:2018-08-20
    月/日/年格式:08/20/18
    HH:MM:SS PM格式(12时制):12:47:22 上午
    HH:MM:SS格式(24时制):00:47:22
    HH:MM格式(24时制):00:47

    如果你需要重复提供日期,那么利用这种方式来格式化它的每一部分就有点复杂了。因此,可以利用一个格式化字符串指出要被格式化的参数的索引。

    索引必须紧跟在%后面,而且必须以$结束。

    实例

    import java.util.Date;
      
    public class DateDemo {
     
       public static void main(String args[]) {
           // 初始化 Date 对象
           Date date = new Date();
            
           // 使用toString()显示日期和时间
           System.out.printf("%1$s %2$tB %2$td, %2$tY", 
                             "Due date:", date);
       }
    }

    以上实例编译运行结果如下:Due date: 八月 20, 2018

    或者,你可以使用 < 标志。它表明先前被格式化的参数要被再次使用。例如:

    import java.util.Date;
      
    public class DateDemo {
     
       public static void main(String args[]) {
           // 初始化 Date 对象
           Date date = new Date();
            
           // 显示格式化时间
           System.out.printf("%s %tB %<te, %<tY", 
                             "Due date:", date);
       }
    }

    以上实例编译运行结果如下:Due date: 八月 20, 2018

    定义日期格式的转换符可以使日期通过指定的转换符生成新字符串。这些日期转换符如下所示:

    import java.util.*;
      
    public class DateDemo {
       public static void main(String args[]) {
           Date date=new Date();                                      
            //b的使用,月份简称  
            String str=String.format(Locale.US,"英文月份简称:%tb",date);       
            System.out.println(str);                                                                              
            System.out.printf("本地月份简称:%tb%n",date);  
            //B的使用,月份全称  
            str=String.format(Locale.US,"英文月份全称:%tB",date);  
            System.out.println(str);  
            System.out.printf("本地月份全称:%tB%n",date);  
            //a的使用,星期简称  
            str=String.format(Locale.US,"英文星期的简称:%ta",date);  
            System.out.println(str);  
            //A的使用,星期全称  
            System.out.printf("本地星期的简称:%tA%n",date);  
            //C的使用,年前两位  
            System.out.printf("年的前两位数字(不足两位前面补0):%tC%n",date);  
            //y的使用,年后两位  
            System.out.printf("年的后两位数字(不足两位前面补0):%ty%n",date);  
            //j的使用,一年的天数  
            System.out.printf("一年中的天数(即年的第几天):%tj%n",date);  
            //m的使用,月份  
            System.out.printf("两位数字的月份(不足两位前面补0):%tm%n",date);  
            //d的使用,日(二位,不够补零)  
            System.out.printf("两位数字的日(不足两位前面补0):%td%n",date);  
            //e的使用,日(一位不补零)  
            System.out.printf("月份的日(前面不补0):%te",date);  
       }
    }

    输出结果为:

    英文月份简称:May
    本地月份简称:五月
    英文月份全称:May
    本地月份全称:五月
    英文星期的简称:Thu
    本地星期的简称:星期四
    年的前两位数字(不足两位前面补0):20
    年的后两位数字(不足两位前面补0):17
    一年中的天数(即年的第几天):124
    两位数字的月份(不足两位前面补0):05
    两位数字的日(不足两位前面补0):04
    月份的日(前面不补0):4

    5、解析字符串为时间

    SimpleDateFormat 类有一些附加的方法,特别是parse(),它试图按照给定的SimpleDateFormat 对象的格式化存储来解析字符串。

    实例

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

    以上实例执行如下:

    $ java DateDemo
    1818-11-11 Parses as Wed Nov 11 00:00:00 GMT 1818
    $ java DateDemo 2007-12-01
    2007-12-01 Parses as Sat Dec 01 00:00:00 GMT 2007

    6、calendar 类

    我们现在已经能够格式化并创建一个日期对象了,但是我们如何才能设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟? 我们又如何在日期的这些部分加上或者减去值呢? 答案是使用Calendar 类。

    Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些。

    Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。

    • 创建一个代表系统当前日期的Calendar对象
    Calendar c = Calendar.getInstance();//默认是当前日期
    • 创建一个指定日期的Calendar对象
    //创建一个代表2009年6月12日的Calendar对象
    Calendar c1 = Calendar.getInstance();
    c1.set(2009, 6 - 1, 12);

    Calendar类对象字段类型

    Calendar类中用以下这些常量表示不同的意义,jdk内的很多类其实都是采用的这种思想

    常量 描述
    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设置

    Calendar c1 = Calendar.getInstance();
    //把Calendar对象c1的年月日分别设这为:2009、6、12
    c1.set(2009, 6 - 1, 12);
    //把 c1对象代表的日期设置为10号,其它所有的数值会被重新计算
    c1.set(Calendar.DATE,10);
    //把c1对象代表的年份设置为2008年,其他的所有数值会被重新计算
    c1.set(Calendar.YEAR,2008);

    Add设置

    Calendar c1 = Calendar.getInstance();
    //把c1对象的日期加上10,也就是c1也就表示为10天后的日期,其它所有的数值会被重新计算
    c1.add(Calendar.DATE, 10);
    //把c1对象的日期减去10,也就是c1也就表示为10天前的日期,其它所有的数值会被重新计算
    c1.add(Calendar.DATE, -10);
    

    calendar类对象信息的获取

    Calendar c1 = Calendar.getInstance();
    // 获得年份
    int year = c1.get(Calendar.YEAR);
    // 获得月份
    int month = c1.get(Calendar.MONTH) + 1;
    // 获得日期
    int date = c1.get(Calendar.DATE);
    // 获得小时
    int hour = c1.get(Calendar.HOUR_OF_DAY);
    // 获得分钟
    int minute = c1.get(Calendar.MINUTE);
    // 获得秒
    int second = c1.get(Calendar.SECOND);
    // 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)
    int day = c1.get(Calendar.DAY_OF_WEEK);

    其它方法参考Java API

    7、GregorianCalendar类

    Calendar类实现了公历日历,GregorianCalendar是Calendar类的一个具体实现。

    Calendar 的getInstance()方法返回一个默认用当前的语言环境和时区初始化的GregorianCalendar对象。GregorianCalendar定义了两个字段:AD和BC。这是代表公历定义的两个时代。

    下面列出GregorianCalendar对象的几个构造方法:

    序号 构造函数和说明
    1 GregorianCalendar() 
    在具有默认语言环境的默认时区内使用当前时间构造一个默认的 GregorianCalendar。
    2 GregorianCalendar(int year, int month, int date) 
    在具有默认语言环境的默认时区内构造一个带有给定日期设置的 GregorianCalendar
    3 GregorianCalendar(int year, int month, int date, int hour, int minute) 
    为具有默认语言环境的默认时区构造一个具有给定日期和时间设置的 GregorianCalendar。
    4 GregorianCalendar(int year, int month, int date, int hour, int minute, int second) 
      为具有默认语言环境的默认时区构造一个具有给定日期和时间设置的 GregorianCalendar。
    5 GregorianCalendar(Locale aLocale) 
    在具有给定语言环境的默认时区内构造一个基于当前时间的 GregorianCalendar。
    6 GregorianCalendar(TimeZone zone) 
    在具有默认语言环境的给定时区内构造一个基于当前时间的 GregorianCalendar。
    7 GregorianCalendar(TimeZone zone, Locale aLocale) 
     在具有给定语言环境的给定时区内构造一个基于当前时间的 GregorianCalendar。

    这里是GregorianCalendar 类提供的一些有用的方法列表:

    序号 方法和说明
    1 void add(int field, int amount) 
    根据日历规则,将指定的(有符号的)时间量添加到给定的日历字段中。
    2 protected void computeFields() 
    转换UTC毫秒值为时间域值
    3 protected void computeTime() 
    覆盖Calendar ,转换时间域值为UTC毫秒值
    4 boolean equals(Object obj) 
    比较此 GregorianCalendar 与指定的 Object。
    5 int get(int field) 
    获取指定字段的时间值
    6 int getActualMaximum(int field) 
    返回当前日期,给定字段的最大值
    7 int getActualMinimum(int field) 
    返回当前日期,给定字段的最小值
    8 int getGreatestMinimum(int field) 
     返回此 GregorianCalendar 实例给定日历字段的最高的最小值。
    9 Date getGregorianChange() 
    获得格里高利历的更改日期。
    10 int getLeastMaximum(int field) 
    返回此 GregorianCalendar 实例给定日历字段的最低的最大值
    11 int getMaximum(int field) 
    返回此 GregorianCalendar 实例的给定日历字段的最大值。
    12 Date getTime()
    获取日历当前时间。
    13 long getTimeInMillis() 
    获取用长整型表示的日历的当前时间
    14 TimeZone getTimeZone() 
    获取时区。
    15 int getMinimum(int field) 
    返回给定字段的最小值。
    16 int hashCode() 
    重写hashCode.
    17 boolean isLeapYear(int year)
    确定给定的年份是否为闰年。
    18 void roll(int field, boolean up) 
    在给定的时间字段上添加或减去(上/下)单个时间单元,不更改更大的字段。
    19 void set(int field, int value) 
    用给定的值设置时间字段。
    20 void set(int year, int month, int date) 
    设置年、月、日的值。
    21 void set(int year, int month, int date, int hour, int minute) 
    设置年、月、日、小时、分钟的值。
    22 void set(int year, int month, int date, int hour, int minute, int second) 
    设置年、月、日、小时、分钟、秒的值。
    23 void setGregorianChange(Date date) 
    设置 GregorianCalendar 的更改日期。
    24 void setTime(Date date) 
    用给定的日期设置Calendar的当前时间。
    25 void setTimeInMillis(long millis) 
    用给定的long型毫秒数设置Calendar的当前时间。
    26 void setTimeZone(TimeZone value) 
    用给定时区值设置当前时区。
    27 String toString() 
    返回代表日历的字符串。

    实例

    import java.util.*;
      
    public class GregorianCalendarDemo {
     
       public static void main(String args[]) {
          String months[] = {
          "Jan", "Feb", "Mar", "Apr",
          "May", "Jun", "Jul", "Aug",
          "Sep", "Oct", "Nov", "Dec"};
          
          int year;
          // 初始化 Gregorian 日历
          // 使用当前时间和日期
          // 默认为本地时间和时区
          GregorianCalendar gcalendar = new GregorianCalendar();
          // 显示当前时间和日期的信息
          System.out.print("Date: ");
          System.out.print(months[gcalendar.get(Calendar.MONTH)]);
          System.out.print(" " + gcalendar.get(Calendar.DATE) + " ");
          System.out.println(year = gcalendar.get(Calendar.YEAR));
          System.out.print("Time: ");
          System.out.print(gcalendar.get(Calendar.HOUR) + ":");
          System.out.print(gcalendar.get(Calendar.MINUTE) + ":");
          System.out.println(gcalendar.get(Calendar.SECOND));
          
          // 测试当前年份是否为闰年
          if(gcalendar.isLeapYear(year)) {
             System.out.println("当前年份是闰年");
          }
          else {
             System.out.println("当前年份不是闰年");
          }
       }
    }

    本文转载自菜鸟教程

    展开全文
  • JAVA 日期时间比较

    万次阅读 2018-08-13 14:44:16
    JAVA 日期时间比较 SimpleDateFormat的format方法将日期型转化成时间或日期的字符串,然后再比较字符串。 String startTimeStr = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss:SSS").format(new Date());/...

    JAVA 日期时间比较

    • SimpleDateFormatformat方法将日期型转化成时间或日期的字符串,然后再比较字符串。

    String startTimeStr = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss:SSS").format(new Date());//2018-08-13 10:22:48.883

    String endTimeStr = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss:SSS").format(new Date());//2018-08-13 10:22:49.225

    字符串时间比较大小

    • date.getTime()
    1. 相加减或直接比较用大于小于号比较

    Date startTime= df.parse(startTimeStr);

    Date endTime= df.parse(endTimeStr);

    if (startTime.getTime() > endTime.getTime()) {

            return true;// startTime在endTime前

    }

    1. compareTo

    compareTo() 方法用于将 Number 对象与方法的参数进行比较。可用于比较 Byte, Double, Integer, Float, Long Short 等。该方法用于两个相同数据类型的比较,两个不同类型的数据不能用此方法来比较。

    10.compareTo(3);//返回值1

    3.compareTo(3);//返回值0

    2.compareTo(3);//返回值-1

    返回值:如果指定的数与参数相等返回0,如果指定的数小于参数返回 -1。如果指定的数大于参数返回 1。

    • Date  after\before\equals直接比较

    1、after:返回值 true如果代表Date对象是严格迟于when表示的时刻; 否则为false。

      if (startTime.after(endTime)){

       //表示startTime晚于endTime

      }else{

       --反之

            }

    2、before:返回值 true如果Date对象在when表示的时刻之前,否则为false。

      if (startTime.before(endTime)){

       //表示startTime早于endTime

      }else{

       --反之

            }

     

    展开全文
  • Java 日期时间比较

    千次阅读 2018-12-15 12:39:31
    Java使用以下三种方法来比较两个日期: 使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。 使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new ...

    Java使用以下三种方法来比较两个日期:

    1. 使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。
    2. 使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。
    3. 使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * 
     * @version 2018/12/4 12:41
     */
    public class app {
        public static void main(String[] args) throws ParseException {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date1 = sdf.parse("2018-12-13 23:59:59");
            Date date2 = sdf.parse("2018-12-14 23:59:59");
            test1(date1,date2);
            test2(date1,date2);
            test3(date1,date2);
        }
    
        //日期比较-->使用方法 before(),after() 和 equals()
        public static void test1(Date date1,Date date2) {
                if (date1.before(date2)) {
                    System.out.println("date1" + "在" + "date2" + "之前");
                } else if (date1.after(date2)) {
                    System.out.println("date1" + "在" + "date2" + "之后");
                } else {
                    System.out.println("date1" + "和" + "date2" + "相等");
                }
        }
    
        //日期比较-->使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。
    
        public static void test2(Date date1,Date date2) {
            if (date1.getTime() < date2.getTime()) {
                System.out.println("date1" + "在" + "date2" + "之前");
            } else if (date1.getTime() > date2.getTime()) {
                System.out.println("date1" + "在" + "date2" + "之后");
            } else {
                System.out.println("date1" + "和" + "date2" + "相等");
            }
    
        }
    
        //日期比较-->使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。
        //两者相等时候返回0。调用对象在指定日期之前则返回负数。调用对象在指定日期之后则返回正数。
        public static void test3(Date date1,Date date2) {
            int i = date1.compareTo(date2);
            if (i < 0) {
                System.out.println("date1" + "在" + "date2" + "之前");
            } else if (i > 0) {
                System.out.println("date1" + "在" + "date2" + "之后");
            } else {
                System.out.println("date1" + "和" + "date2" + "相等");
            }
        }
    
    
    展开全文
  • Java日期时间格式转换

    千次阅读 2019-04-19 17:16:00
    Java日期时间格式转换 1、Date转String 将日期格式化成指定的格式 public static String stampToDate(Date date) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); ...
  • java日期时间各种变换及处理

    千次阅读 2018-05-10 21:09:08
    java处理时间 个人在平时写程序的时候,会遇到将字符型转化为时间、或者获取当期时间,昨天的时间,获取当前月,当前日,当前季度等等。为此,本人写了一个时间处理类,希望对大家有帮助。其中,该类中的函数,可能...
  • Java日期时间的设置问题

    千次阅读 2019-08-18 23:27:43
    Calender的月份是从0开始的,但日期和年份是从1开始的 例1 import java.util.Calendar; public class Test { public static void main(String[] args) { Calendar c1 = Calendar.getInstance(); c1.set(2017...
  • JAVA日期时间加减

    万次阅读 2018-07-18 14:27:02
    1.获取当前系统时间 ...第一种: 用java.text.SimpleDateFormat来实现  SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");   System.out.println("今天的日期:"+df.format(date...
  • Java日期时间DateUtils工具包

    千次阅读 2019-07-19 12:51:52
    Java日期时间工具包 import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * @author * @Date 2019年7月19日 上午11:20:41 类说明 */ public class DateUtils { /*...
  • Java日期时间处理

    万次阅读 2016-01-08 18:34:56
    我的Java日期时间处理 最近在公司做统计分析项目,经常碰见需要按天统计,按周统计,按月统计的需要,跟日期时间的处理就必不可少了。鉴于博主自己的水平有限,也对Joda-Time等之类的日期时间处理组件知之甚少,...
  • Java 数组声明数组变量:dataType[] arrayRefVar; double[] myList;创建数组:java语言使用new操作符来创建数组,语法如下:arrayRefVar = new datatype[arraySize];上面的语法语句做了两件事情:1.使用dataType...
  • 时间量可以为正也可以为负,比如1天(86400秒0纳秒)、-1天(-86400秒0纳秒)、1年(31556952秒0纳秒)、1毫秒(0秒1000000纳秒)等。 Period类通过年、月、日相结合来描述一个时间量,最高精度是日。时间量可以...
  • 1、日期和字符串格式转换 2、从字符串文本中解析出正确时间。 工具类代码如下,复制粘贴即用!: package com.topcom.cms.yuqing.utils; import org.apache.commons.lang.StringUtils; import org.apache....
  • Java日期时间加减比较工具类

    千次阅读 2019-02-14 17:05:33
    ...import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateUtils { public static void main(String...
  • JAVA 日期时间类使用方法

    千次阅读 2018-03-08 22:48:11
    相关类Date: Date表示特定的瞬间,精确到毫秒,Date中的相应方法已废弃,从JDK 1.1开始,应该使用Calendar类实现日期时间字段之间转换。 DateFormat: DateFormat是日期/时间格式化子类的抽象类,格式化并解析...
  • java 日期时间类型 时区转换.

    千次阅读 2018-06-19 19:48:14
    在网络数据库中请求时间串的时候往往会出现 "2018-06-12T06:08:36.000Z" 这种类型的字符串.下边解析这类字串的方法.String date = "2018-06-12T06:08:36.000Z" date = date.replace("Z&...
  • Java日期时间相关的类

    千次阅读 2017-10-11 23:12:03
    java.util.Date类用于描述特定的瞬间,可以精确到毫秒,通常描述年月日时分秒信息。(2)常用的方法 Date() - 无参方式构造对象,默认使用当前系统时间来初始化该对象。 Date(long date) - 根据参数指定的毫秒数...
  • JAVA日期时间(Calendar/Date)

    千次阅读 2018-06-25 18:03:14
    第一个构造函数使用当前日期时间来初始化对象。Date()第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。Date(long millisec)当调用无参构造方法时即获取去当前时间.对于Date类常见的操作有时间的...
  • JAVA日期时间处理

    千次阅读 热门讨论 2016-02-22 11:30:08
    一、有关时间日期的几个问题 UTC/UT 世界标准时间 GMT 格林尼治时间 How to get the current time System.currentTimeMillis —– 返回当前时间点的毫秒表示,一般用于记录程序的运行时间 Date date = new Date...

空空如也

1 2 3 4 5 ... 20
收藏数 18,426
精华内容 7,370
关键字:

java日期时间

java 订阅