栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Date 类(日期类),SimpleDateFormat 类 (格式化日期),Calendar 类(日历类),NumberFormat 类 (数值格式化)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Date 类(日期类),SimpleDateFormat 类 (格式化日期),Calendar 类(日历类),NumberFormat 类 (数值格式化)

1、Date 类
  • ava.util.Date类封装了日期和时间信息。

  • Date 是表示时间实例的一个类,它的精度为毫秒。

  • Date类的大多数用于进行时间分量计算的方法已经被Calendar取代。

  • Date 对象初始化

    Date d1 = new Date();
    //Date() 分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)
    
    Date d3 = new Date(100, 2, 21);
    //从1900年算起,负值往前推,正值大于对应时间范围往后推,月份以0-11计
    
  • after / before 测试此日期是否在指定日期之后或者之前

    //测试此日期是否在指定日期之后。
    System.out.println(d3.after(d1));//==false  判断时间前后d3=2000年,d1=2021年
    
    //测试此日期是否在指定日期之前。
    System.out.println(d3.before(d1));//==true  判断时间前后d3=2000年,d1=2021年
    
  • compareTo 比较两个日期的顺序

    //比较两个日期的顺序。
    System.out.println(d3.compareTo(d1));
    //比较结果在前则返回-1,相等则返回0,在后则返回1
    
  • equals 比较两个日期的相等性

    //比较两个日期的相等性。
    System.out.println(d3.equals(d1));
    //相等返回true,不相等返回false
    
  • toString 时间格式化输出

    System.out.println(d1.toString());
    //把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)
    
  • getTime()方法 返回:时间原点以来,此Date对象表示的毫秒数

    new Date().getTime()
    
2、SimpleDateFormat 类 (格式化日期)
  • 日期和时间模式

  • 示例代码

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    System.out.println(sdf.format(d1));
    
    SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"+" 年中第w周"+" 月份中第W周"
                                                 +" 年中第D天"+" 月份中第d天"+" 月份中的星期F"+" 星期中的E"+" a"+" 1-24小时中第k小时"+" 1-12小时中第h小时");
    System.out.println(sdf1.format(d1));
    
    System.out.println(d1.getTime());
    Date d2 = new Date(1632706924115L);
    SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
    System.out.println(sdf2.format(d2));
    
3、Calendar 类
  • Calendar 类是一个抽象类,它为日历字段之间的转换提供了一些方法,瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。

  • 用类方法 getInstance,以获得此类型的一个通用的对象

    Calendar cal1 = Calendar.getInstance();//使用默认时区和语言环境获得一个日历。
    
    Calendar cal2 = Calendar.getInstance(Locale.CHINESE);//使用默认时区和指定语言环境获得一个日历。
    
    getInstance(TimeZone zone)//使用指定时区和默认语言环境获得一个日历
        
    getInstance(TimeZone zone, Locale aLocale)//使用指定时区和语言环境获得一个日历。
    
  • getTime() 返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象

    getTimeInMillis() 返回此 Calendar 的时间值,以毫秒为单位。

    System.out.println(cal1.getTime());
    
    System.out.println(sdf.format(cal2.getTimeInMillis()));
    
  • add 增加月内天数

    SimpleDateFormat sdf = new SimpleDateFormat();
    
    //add 增加月内天数,若增加后超出月份天数范围,则会增加月份
    cal1.add(Calendar.DAY_OF_MONTH, 2);//2021-9-29
    System.out.println(sdf.format(cal1.getTime()));
    cal1.add(Calendar.DAY_OF_MONTH, 5);//2021-10-4
    System.out.println(sdf.format(cal1.getTime()));
    
  • roll 月内回滚

    //roll 月内回滚,超出月份天数范围,则不会增加月份,只在该月内变化天数
    cal2.roll(Calendar.DAY_OF_MONTH, 2);//21-9-29
    System.out.println(sdf.format(cal2.getTime()));
    cal2.roll(Calendar.DAY_OF_MONTH, 5);//21-9-4
    System.out.println(sdf.format(cal2.getTime()));
    
4、NumberFormat 类 (数值格式化)
  • ¥ $ 符号 ; 会保留两位小数

    //¥  getCurrencyInstance(Locale.CHINA)
    NumberFormat nfd = NumberFormat.getCurrencyInstance(Locale.CHINA);
    double d2 = 345678912;
    System.out.println(nf2.format(d2));
    //$  getCurrencyInstance(Locale.US)
    NumberFormat nfdd = NumberFormat.getCurrencyInstance(Locale.US);
    double d3 = 456789123;
    System.out.println(nf3.format(d3));
    
  • 科学计数法 getInstance(Locale.CHINA)

    NumberFormat nf1 = NumberFormat.getInstance(Locale.CHINA);
    double d1 = 234567891;
    System.out.println(nf1.format(d1));
    
  • % 百分比 getPercentInstance()

    //% 百分比  getPercentInstance()
    double d4 = 0.456789123;
    NumberFormat nf4 = NumberFormat.getPercentInstance();
    System.out.println(nf4.format(d4));
    
  • 保留一位小数,四舍五入

    //保留一位小数,四舍五入
    double d5 = 0.456789123;
    DecimalFormat df1 = new DecimalFormat("0.0");
    System.out.println(df1.format(d5));
    
    //保留一位小数,四舍五入
    double d8 = 0.456789123;
    DecimalFormat df4 = new DecimalFormat("#.#");
    System.out.println(df4.format(d8));
    
  • 保留两位小数,不四舍五入,直接舍弃

    //保留两位小数,不四舍五入,直接舍弃
    double d6 = 1.456789123;
    DecimalFormat df2 = new DecimalFormat("0.00");
    System.out.println(df2.format(d6));
    
    //保留两位小数,不四舍五入,直接舍弃
    DecimalFormat df5 = new DecimalFormat("#.00");
    System.out.println(df5.format(d8));
    
  • 示例

    int num1 = 1234567;
    double num2 = 0.126543;
    DecimalFormat def1 = new DecimalFormat("#,###");
    DecimalFormat def2 = new DecimalFormat("#.00");
    DecimalFormat def3 = new DecimalFormat("00.#");
    DecimalFormat def4 = new DecimalFormat("0.##E0");//科学计数法,E后面是指数
    DecimalFormat def5 = new DecimalFormat("0.##%");
    System.out.println(def1.format(num1));
    System.out.println(def2.format(num2));
    System.out.println(def3.format(num2));
    System.out.println(def4.format(num1));
    System.out.println(def5.format(num2));
    
    //结果:
    // 1,234,567
    // .13
    // 00.1
    // 1.23E6
    // 12.65%
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/271620.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号