Java 基础入门 | 第十一章 Java 常用类库之util包和text包

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 目录java.util包java.util.Date类java.util.Calendar类java.text包java.text.DateFormat类java.text.SimpleDateFormat类java.text.NumberFormat类java.text.DecimalFormat类作业java.util包java.util包中放置了Java开发过程中常用的工具

java.util包

java.util包中放置了Java开发过程中常用的工具类,如日期时间类,日历类等等

java.util包常用类

    • Date
    • Calendar及其子类
    • 集合接口以及实现类
    • 集合工具类
    • 数组工具类等等

    java.util.Date类

    Date类表示特定的时间,可以精确到毫秒。

    Date类的构造方法

    Date() 无参构造方法

    Date(long time) 有长整形参数的构造方法

    其他构造方法已经废弃不用

    Date类常用方法

    long  getTime();返回1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数

    String toString();将Date对象转换为字符串,默认的转换格式为:dow mon dd hh:mm:ss zzz yyyy

    java.util.Calendar类

     

    java.util.Date类中获取当前年、月、日和将时间格式化以及将字符串类型的日期转换为Date对象的方法都已经被废弃。

    如果想要获取Date对象的年、月、日、星期等操作,需要使用Calendar类以及其子类完成。

    Calendar是一个抽象类,它为获取和修改年、月、日、星期等日历字段提供了一系列的方法。

    Calendar常用方法

      • Calendar getInstance();返回一个Calendar对象
      • void set(int field,int x);设置日历字段的值
      • int get(int field);获取某个日历字段的值
      • java.util.Date getTime();返回代表该日历对象的Date值
      • void setTime(java.util.Date date);使用指定的Date设置该日历对象

      常用的日历字段

        • AM_PM 上午或者下午
        • YEAR 年
        • MONTH 月
        • DATE 日
        • HOUR 12小时制
        • HOUR_OF_DAY 24小时制
        • MINUTE 分钟
        • SECOND 秒
        • MILLISECOND 毫秒

        GregorianCalendar是Calendar的一个直接子类

        提供了世界上大多数国家/地区使用的标准日历系统,即中国所谓的阳历或者公历

        常用方法

          • boolean isLeapYear(int year) 判断指定年份是不是闰年
          • void add(int field ,int x)为指定的日历字段增加值

          java.text包

          提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口

          java.text包常用类或者接口

            • DateFormat以及子类SimpleDateFormat
            • NumberFormat以及子类DecimalFormat

            java.text.DateFormat类

              • DateFormat是一个抽象的时间格式化类
              • DateFormat 是日期/时间格式化的抽象类,它以与语言无关的方式格式化并解析日期或时间。
              • DateFormat 可帮助进行格式化并解析任何语言环境的日期。对于月、星期,甚至日历格式(阴历和阳历),其代码可完全与语言环境的约定无关。
              • 在格式化和解析日期时间过程中,其子类SimpleDateFormat更为常用

              java.text.SimpleDateFormat类

              SimpleDateFormat类是一个以与语言环境有关的方式来格式化和解析日期的具体类

              它提供了格式化日期时间(日期时间>>字符串)和解析日期时间(字符串>>日期时间)的方法

              SimpleDateFormat构造方法

                • SimpleDateFormat()
                • SimpleDateFormat(String pattern) 按照指定的模式创建SimpleDateFormat对象

                日期时间模式

                image.gif编辑

                常用方法

                  • String format(Date date);将一个java.util.Date对象按照指定的模式格式化为日期
                  • Date parse(String date);将一个日期字符串按照指定模式解析为java.util.Date类型的对象

                  代码示例

                  import java.text.ParseException;
                  import java.text.SimpleDateFormat;
                  import java.util.Date;
                  public class SimpleDateFormatTest {
                      public static void main(String[] args) {
                          //根据指定模式创建SimpleDateFormat对象
                          SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
                          //创建日期对象
                          Date date=new Date();
                          //将Date对象按照yyyy年MM月dd日的模式格式化为字符串
                          String text=sdf.format(date);
                          //输入内容类似于2022年02月03日
                          System.out.println(text);
                          //创建字符串类型日期
                          String dateStr="2022年02月03日";
                          try {
                              //将字符串日期按照yyyy年MM月dd日的模式解析为Date对象
                              Date date1=sdf.parse(dateStr);
                              //输入解析的时间对象
                              System.out.println(date1);
                          } catch (ParseException e) {
                              //打印出解析字符串时间的异常
                              e.printStackTrace();
                          }
                      }
                  }

                  image.gif

                  java.text.NumberFormat类

                  NumberFormat是一个数字格式化抽象类

                  该类提供了格式化和解析数值的方法

                  常用方法

                    • String format(double d)将数字格式化为字符串
                    • Number parse(String s)将字符串解析为数字
                    • void  setMaximumFractionDigits(int newValue)设置最大小数位
                    • void  setMinimumFractionDigits(int newValue) 设置最小小数位

                    通常情况下会使用其子类DecimalFormat格式化或者解析数字

                    java.text.DecimalFormat类

                    DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。该类设计有各种功能,使其能够解析和格式化任意语言环境中的数,包括对西方语言、阿拉伯语和印度语数字的支持。

                    构造方法

                      • DecimalFormat()
                      • DecimalFormat(String pattern)按照指定模式构建对象

                      数字模式字符

                      image.gif编辑

                       

                      常用方法

                        • String format(double d);格式化数字为字符串
                        • Number parse(String str);解析字符串数字为Number对象

                        代码示例

                        import java.text.DecimalFormat;
                        import java.text.ParseException;
                        public class DecimalFormatTest {
                            public static void main(String[] args) {
                                //创建#,###,###.0模式的DecimalFormat对象
                                DecimalFormat df=new DecimalFormat("#,###,###.0");
                                //创建一个double类型的数字
                                double digit=12345667.9234;
                                //将digit格式化为#,###,###.0模式的字符串
                                String text=df.format(digit);
                                //输出数字格式化后的字符串
                                System.out.println(text);
                                try {
                                    //解析文本为#,###,###.0模式的字符串为数字
                                    Number num= df.parse("1234,032.2131");
                                    //输出解析后的数字
                                    System.out.println(num);
                                } catch (ParseException e) {
                                    //打印解析异常
                                    e.printStackTrace();
                                }
                            }
                        }

                        image.gif


                        相关文章
                        |
                        15天前
                        |
                        Java 开发者 微服务
                        Spring Boot 入门:简化 Java Web 开发的强大工具
                        Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
                        35 6
                        Spring Boot 入门:简化 Java Web 开发的强大工具
                        |
                        12天前
                        |
                        监控 架构师 Java
                        Java虚拟机调优的艺术:从入门到精通####
                        本文作为一篇深入浅出的技术指南,旨在为Java开发者揭示JVM调优的神秘面纱,通过剖析其背后的原理、分享实战经验与最佳实践,引领读者踏上从调优新手到高手的进阶之路。不同于传统的摘要概述,本文将以一场虚拟的对话形式,模拟一位经验丰富的架构师向初学者传授JVM调优的心法,激发学习兴趣,同时概括性地介绍文章将探讨的核心议题——性能监控、垃圾回收优化、内存管理及常见问题解决策略。 ####
                        |
                        28天前
                        |
                        Java Android开发
                        Eclipse 创建 Java 包
                        Eclipse 创建 Java 包
                        30 1
                        |
                        1月前
                        |
                        监控 安全 Java
                        Java中的多线程编程:从入门到实践####
                        本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
                        |
                        1月前
                        |
                        Java 大数据 API
                        14天Java基础学习——第1天:Java入门和环境搭建
                        本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
                        |
                        24天前
                        |
                        Java 程序员 数据库连接
                        Java中的异常处理:从入门到精通
                        在Java编程的海洋中,异常处理是一艘不可或缺的救生艇。它不仅保护你的代码免受错误数据的侵袭,还能确保用户体验的平稳航行。本文将带你领略异常处理的风浪,让你学会如何在Java中捕捉、处理和预防异常,从而成为一名真正的Java航海家。
                        |
                        XML JSON 数据格式
                        No converter found for return value of type: class java.util.ArrayList错误问题
                        No converter found for return value of type: class java.util.ArrayList错误问题
                        No converter found for return value of type: class java.util.ArrayList错误问题
                        |
                        2天前
                        |
                        安全 Java API
                        java如何请求接口然后终止某个线程
                        通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
                        24 6
                        |
                        17天前
                        |
                        设计模式 Java 开发者
                        Java多线程编程的陷阱与解决方案####
                        本文深入探讨了Java多线程编程中常见的问题及其解决策略。通过分析竞态条件、死锁、活锁等典型场景,并结合代码示例和实用技巧,帮助开发者有效避免这些陷阱,提升并发程序的稳定性和性能。 ####
                        |
                        15天前
                        |
                        存储 监控 小程序
                        Java中的线程池优化实践####
                        本文深入探讨了Java中线程池的工作原理,分析了常见的线程池类型及其适用场景,并通过实际案例展示了如何根据应用需求进行线程池的优化配置。文章首先介绍了线程池的基本概念和核心参数,随后详细阐述了几种常见的线程池实现(如FixedThreadPool、CachedThreadPool、ScheduledThreadPool等)的特点及使用场景。接着,通过一个电商系统订单处理的实际案例,分析了线程池参数设置不当导致的性能问题,并提出了相应的优化策略。最终,总结了线程池优化的最佳实践,旨在帮助开发者更好地利用Java线程池提升应用性能和稳定性。 ####