zoukankan      html  css  js  c++  java
  • Java中日期处理

    主要涉及到

    java.util.Calendar;

    java.util.Date;

    java.sql.Date;

    java.sql.Time;

    java.sql.Timestamp;

    其中java.util.Date;是java.sql.Date; java.sql.Time; java.sql.Timestamp;的父类

    1. Calendar

    1.1 获取Calendar

      单例获取:

    Calendar calendar = Calendar.getInstance();

      多态获取:

    Calendar calendar = new GregorianCalendar();

    1.2 设置日期时间

        当得到一个Calendar的实例之后,该实例存储的就是当前的时间(默认时区或者构造的时候指定时区),如果要更改此日期时间,则 可以使用set()方法:

      如:

      set(int year, int month, int date)

      set(int year, int month, int date, int hourOfDay, int minute, int second)等一系列重载的方法。

    cal.set(2099,9,22,23,59,59);
    Date date4 = cal.getTime();

        这里要注意在使用Calender的set()方法的时候,月份是从0开始计算的的,所以上面的9实际指的的十月,并且Calendar是以日历的形式计算日期的。比如2013-01-30

      这个日期:2013非闰年,01代表2月份,而该年的2月份只有28天,所以日期设定为30时,计算结果会自动往后延2天。所以得到的实际日期是:

      2013-03-02 + 当前时间.打印结果形如:[Sat Mar 02 15:53:17 CST 2013]

    1.3 功能

      1.3.1 获取Date,long类型的时间毫秒值

        通过 calendar.getTime()获取Date

    Date date = calendar.getTime();

        通过 calendar.getTimeInMillis() 获取long类型的时间毫秒数,可以作为Time和Timestamp的构造函数参数,用于获取这两类对象

    Time time = new Time(calendar.getTimeInMillis);
    Timestamp time = new Timestamp(calendar.getTimeInMillis);  

      1.3.2 比较日期

      1.3.3 和时区,星期打交道

      1.3.4 获取指定日期的前后偏移

        比如获取当前日期的后三天,前五天等等

      .... 

    2. java.util.Date

      这个是核心的对象

    2.1 获取

      构造方法:

    java.util.Date date = new java.util.Date();

      Calendar获取:

    java.util.Date date = Calendar.getInstance().getTime();

      DateFormat获取:

    String dateString = "2099-10-22 23:59:59";
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设定格式
    java.util.Date date3 = df.parse(dateString); //将字符串转化为日期

      由第三种方式,可以知道,可以由字符串转化为Date类型,反之也可以由Date转为String

    1.3 获取java.sql.Time

      构造方法(Date):

    Date nowDate = new Date();
    Time time = new Time(nowDate.getTime());

      构造方法(System):

    long now= System.currentTimeMillis();
    Time time = new Time(now);

      Calendar:

    long now = calendar.getTimeInMillis();
    Time time = new Time(now);

      基本都是通过构造方法创建,参数传入一个long类型值即可

      当有了Time的实例对象后可以使用setTime(long time);重新设置时间了

    1.4获取java.sql.Timestamp

      Timestamp和Time类似,基本上也是使用构造方法获取

    //通过Date
    Timestamp ts1 = new Timestamp(new Date().getTime());
    //通过System
    Timestamp ts2 = new Timestamp(System.currentTimeMillis());
    //通过Calendar
    Timestamp ts3 = new Timestamp(calendar.getTimeInMillis());

      

      

  • 相关阅读:
    js右击事件
    css中的特殊居中
    js实现轮播图
    css画三角形
    Elasticsearch-5.5.0安装head插件
    Elasticsearch报错:NodeDisconnectedException[[][IP:9300][cluster:monitor/nodes/liveness] disc
    mybatis foreach多次遍历问题
    Java使用File.separator解决Win和Linux的路径问题
    WebStorm 代码提示快捷键
    springmvc 前台传日期(字符串) 后台用date接收封装失败(请求400)
  • 原文地址:https://www.cnblogs.com/seguzhizi/p/5176176.html
Copyright © 2011-2022 走看看