• 日期类


    Date类

    Date 类是 java.util.Date 类,不是 java.sql.Date

    构造方法

    //使用当前日期和时间来初始化对象
    Date();
    //接收一个参数,该参数是从1970年1月1日起的毫秒数
    Date(long millisec);
    

    返回毫秒数 getTime

    //返回自 1970年1月1日 00:00:00 GMT 以来此 Date 对象表示的毫秒数
    long getTime();
    
    //下面两种返回的都是当前时间的毫秒数
    new Date().getTime();
    System.currentTimeMillis();
    

    设置毫秒数 setTime

    //用自 1970年1月1日 00:00:00 GMT 以后 time 毫秒数设置时间和日期
    void setTime(long time)
    

    判断时间先后 after

    //若当调用此方法的 Date 对象在指定日期之后返回 true,否则返回 false。
    boolean after(Date date);
    

    判断时间先后 before

    //若当调用此方法的 Date 对象在指定日期之前返回 true,否则返回 false。
    boolean before(Date date);
    

    转换字符串 toString

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


    SimpleDateFormat类

    日期转字符串 format

    y      年
    M      月
    d      日
    H      24进制的小时
    h      12进制的小时
    m      分钟
    s      秒
    S      毫秒
    E      星期几
    D      一年的第几天
    w      一年中第几周
    W      一个月中第几周
    a      AM还是PM
    
    SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS" );
    Date d= new Date();
    String str = sdf.format(d);
    System.out.println("当前时间通过 yyyy-MM-dd HH:mm:ss SSS 格式化后的输出: "+str);
    //当前时间通过 yyyy-MM-dd HH:mm:ss SSS 格式化后的输出: 2019-06-09 23:06:20 164
    
    SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy/MM/dd");
    Date d1= new Date();
    String str1 = sdf1.format(d1);
    System.out.println("当前时间通过 yyyy/MM/dd 格式化后的输出: "+str1);
    //当前时间通过 yyyy/MM/dd 格式化后的输出: 2019/06/09
    

    字符串转日期 parse

    SimpleDateFormat sdf =new SimpleDateFormat("yyyy/MM/dd HH:mm:ss" );
    String str = "2019/12/5 12:12:12";
    
    try {
    	Date d = sdf.parse(str);
    	System.out.printf("字符串 %s 通过格式  yyyy/MM/dd HH:mm:ss %n转换为日期对象: %s",str,d.toString());
    } catch (ParseException e) {
    	e.printStackTrace();
    }
    //字符串 2019/12/5 12:12:12 通过格式  yyyy/MM/dd HH:mm:ss 
    //转换为日期对象: Thu Dec 05 12:12:12 CST 2019
    

    字符串模式 (yyyy/MM/dd HH:mm:ss) 需要和字符串格式保持一致



    Calendar类

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

    获取 Calendar 对象

    //默认是当前日期
    Calendar c = Calendar.getInstance();
    
    //创建一个代表2019年5月12日的Calendar对象
    Calendar c1 = Calendar.getInstance();
    c1.set(2019, 5 - 1, 12);  //月份从0开始计
    

    filed 字段类型

    Calendar.YEAR	                 年份
    Calendar.MONTH	                 月份,0-11
    Calendar.DATE	                 日期
    Calendar.DAY_OF_MONTH	         日期,和上面的字段意义完全相同
    Calendar.HOUR	                 12小时制的小时
    Calendar.HOUR_OF_DAY	         24小时制的小时
    Calendar.MINUTE	                 分钟
    Calendar.SECOND	                 秒
    Calendar.DAY_OF_WEEK	         星期几
    

    Calendar 与 Date 转换

    //用给定的Date设置Calendar的当前时间
    void setTime(Date date);
    
    //获取日历当前时间
    Date getTime();
    
    //Calendar转Date
    Calendar c = Calendar.getInstance();
    Date d = c.getTime();
    
    //Date转Calendar
    Date d1 = new Date(0);
    //日期调成: 1970.1.1 08:00:00
    c.setTime(d1); 
    

    设置字段 set

    //只设定某个字段,例如日期的值, 例 c1.set(Calendar.DATE,10)
    void set(int field,int value);
    //设置年月日
    void set(int year,int month,int date);
    //设置年月日时分秒
    void set(int year,int month,int date,int hourOfDay,int minute,int second);
    

    添加或减去时间 add

    void add(int field, int amount);
    
    Calendar c1 = Calendar.getInstance();
    //当前日期加10天
    c1.add(Calendar.DATE, 10);
    //当前日期减10天
    c1.add(Calendar.DATE, -10);
    

    添加或减去时间 roll

    void roll(int field, int amount);
    

    roll 方法和 add 类似,区别在于加上 amount 后超过该字段最大值后,不会向上一个字段进位。

    Calendar ca1 = Calendar.getInstance();
    ca1.set(2003, 7, 23, 0, 0, 0);  // 2003-8-23
    ca1.add(Calendar.MONTH, 6);   //2004-2-23
    
    Calendar ca2 = Calendar.getInstance();
    ca2.set(2003, 7, 23, 0, 0, 0);  // 2003-8-23
    ca2.add(Calendar.MONTH, 6);   //2003-2-23
    

    获取 filed 字段值 get

    void get(int filed);
    
    //获取当前时间月份
    Calendar c1 = Calendar.getInstance();
    int month = c1.get(Calendar.MONTH) + 1;
    

    获取 filed 最大值 getActualMaximum

    //返回当前日期,给定字段的最大值,例如月份返回 11
    int getActualMaximum(int field);
    

    获取 filed 最小值getActualMaximun

    //返回当前日期,给定字段的最小值, 例如月份返回 0
    int getActualMinimum(int field);
    
  • 相关阅读:
    Serverless 架构到底要不要服务器?
    Serverless 在 SaaS 领域的最佳实践
    20 行代码:Serverless 架构下用 Python 轻松搞定图像分类和预测
    创业公司用 Serverless,到底香不香?
    如何通过 Serverless 轻松识别验证码?
    Serverless 是一种思想状态
    都 2021 年了,Serverless 能取代微服务吗?
    从零入门 Serverless | 架构的演进
    Serverless 的价值
    实验楼前后端代码
  • 原文地址:https://www.cnblogs.com/zongmin/p/11342812.html
Copyright © 2020-2023  润新知