zoukankan      html  css  js  c++  java
  • 21、java中和日期相关的类

    一、Data及其常用API

    1、简介

      Java中的时间使用标准类库的java.util.Date,其表示特定的瞬间,精确到毫秒。是用距离一个固定时间点的毫秒数(可正可负,long类型)表达一个特定的时间点。

    固定的时间点叫纪元(epoch),是UTC时间1970年 1月 1日 00:00:00  ,UTC(Universal Time Coordinated世界调整时间)与GMT(Greenwich Mean Time格林威治时间)一样,是一种具有实际目的的科学标准时间。

      因为Date的设计具有"千年虫"以及"时区"的问题,所以Date中的大部分方法已经不建议使用了,它们都被java.util.Calendar类所取代,该类我们稍后会讲解。

    2、构造函数

      ①:new Date() :返回系统当前时间的Date对象

      ②:new Date(long date):给定指定毫秒数,返回Date对象

      ③:new Date(int year, int month,int date) :根据年月日返回Date对象

         注意:year:107表示2007年   年份=1900+year   。例如要表示2015年,则year=2015-1900=115

                 month:0表示1月        月份=month+1     。例如要表示6月,则month=6-1=5 。如果月份大于11会产生向年份进位。

          date:日如果大于该月的最大值时,同样会向月进位

      ④:new Date(int year,int  month,int  date,int  hrs,int  min)

      ⑤:new Date(int year,int  month,int  date,int  hrs,int  min,int  sec)

          注意:时分秒同样也会产生进位

    3、常用方法

      ①:setTime(long time) 设置一个时间,long表示的这个时间点距离1970年1月1日 00:00:00之间的毫秒差。

      ②:getTime():获取该时间距离1970年1月1日 00:00:00之间的毫秒差

    二、SimpleDateFormat

    1、简介

      SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。

    2、日期模式匹配字符串

    字符 含义 示例
    y yyyy年---2015年
    M MM月--03月
    d dd日--12日
    E 星期 E--星期日
    a 上下午 a--上午(AM)
    H 24小时制 HH时--16时
    h 12小时制 hh时--04时
    m mm--23分
    s ss--59秒
    S 毫秒 SSS毫秒-567毫秒

      例如yyyy-MM-dd HH:mm:ss.SSS可以匹配2015-06-02 14:32:13.546

    3、将Date转换成String

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

    4、将String转换成Date

    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    Date date =sdf.parse("2015-06-02 14:35:36.000");
    System.out.println(date); 

    三、Calendar类

    1、简介

      java.util.Calendar 类用于封装日历信息,其主要作用在于其方法可以对时间分量进行运算。

    Calendar是抽象类,其具体子类针对不同国家的日历系统,其中应用最广泛的是GregorianCalendar(格里高里历,即通用的阳历),对应世界上绝大多数国家/地区使用的标准日历系统。

    2、 getInstance()方法

    Calendar是抽象类,其提供了一个工厂方法:Calendar getInstance()。该方法可以根据当前系统所在地区获取一个适当的Calendar的子类实现。

    在实际开发中,也推荐使用该方法来实例化Calendar的对象。

    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    Calendar calendar=Calendar.getInstance();
    System.out.println(sdf.format(calendar.getTime()));

    3、设置日期及时间分量

      Calendar提供了一种通用的设置时间的方式:

      void set(int field,int value)

      该方法可以通过对不同的时间分量分别设置不同的值。Calendar对不同的时间分量提供了相应的常量,我们在使用set方法设置时,第一个参数就应当使用对应的常量作为时间分量。

      注意:分量month同样从0开始,分量也有进位的可能

    4、setTime与getTime

      设置和获取的对象都是Data类型,而Date对象对应的这两个方法,是long类型的

    5、void add(int field,int amount)

      该方法可以为某个时间分量的值加上给定的值,若想减去给定的值,那么传入的值需要时负数即可。并且计算后会自动进行相应的进位。

    6、int  getActualMaximum(int field)

      获取该分量的最大值

  • 相关阅读:
    在关闭窗体时弹出对话框
    使应用程序在进程中消失
    禁用窗口上的关闭按钮
    洛谷P1080 国王游戏
    洛谷P1443 马的遍历
    算法竞赛入门经典第二版 随笔1
    AcWing 794. 高精度除法
    AcWing 793. 高精度乘法
    AcWing 792. 高精度减法
    AcWing 791. 高精度加法
  • 原文地址:https://www.cnblogs.com/caoyc/p/4546527.html
Copyright © 2011-2022 走看看