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 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.void setTime(long time)
     
    用自1970年1月1日00:00:00 GMT以后time毫秒数设置时间和日期。

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

    JAVA中获取当前日期

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

    运行结果 : Fri Nov 16 03:13:29 UTC 2018

    日期比较

    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 类实现了这个接口。

    使用 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 ("yyyy-MM-dd hh:mm:ss");
     
          System.out.println("当前时间为: " + ft.format(dNow));
       }
    }

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

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

    运行结果 : 当前日期为: 2018-11-16 03:21:04

    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); 
          }
       }
    }

    运行结果 :2015-11-11 Parses as Wed Nov 11 00:00:00 UTC 2015

    Java 休眠(sleep)

    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);   // 休眠3秒
             System.out.println(new Date( ) + "
    "); 
          } catch (Exception e) { 
              System.out.println("Got an exception!"); 
          }
       }
    }

    运行结果:

    Fri Nov 16 03:26:03 UTC 2018

    Fri Nov 16 03:26:06 UTC 2018

    Calendar类

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

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

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

    创建一个Calendar类对象
    Calendar c = Calendar.getInstance();//默认为当前日期
    创建一个指定日期的Calendar类对象
    Calendar c1 =Calendar.getInstance();
    c1.set(2018,7 - 1,23)//2018年7月23号

    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);

    Calender的月份是从0开始的,但日期和年份是从1开始的。




  • 相关阅读:
    我不是不懂
    Spring环境搭建,IoC容器初体验~
    备战招聘——信息获取与简历制作
    2013应届毕业生“华为”校招应聘总结
    Java知识积累——Sax解析xml文档
    Java知识积累——同时输出到控制台和指定文件,或直接输出到指定文件
    Java知识积累——静态代码块,非静态代码块,构造器的执行顺序和次数
    修改数据库表结构
    IE6/IE7/IE8/Firefox/Chrome/Safari的CSS hack兼容一览表
    项目代码风格要求
  • 原文地址:https://www.cnblogs.com/time-to-despair/p/9968401.html
Copyright © 2011-2022 走看看