java常用类--StringBuffer,StringBuilder,日期类

java常用类--StringBuffer,StringBuilder,日期类

Stringbuffer类

  • java.lang.StringBuffer代表可变的字符序列,JDK1.0中声明,可以对字符串内容进行增删,此时不会产生新的对象。

  • 很多方法与String相同。

  • 作为参数传递时,方法内部可以改变值

  • StringBuffer类不同于String,其对象必须使用构造器生成。有三个构造器:

    StringBuffer():初始容量为16的字符串缓冲区

    StringBuffer(int size):构造指定容量的字符串缓冲区

    StringBuffer(String str):将内容初始化为指定字符串内容


StringBuffer类的常用方法

StringBuffer append(xxx):提供了很多的append()方法,用于进行字符串拼接

StringBuffer delete(int start,int end):删除指定位置的内容

StringBuffer replace(int start, int end, String str):把[start,end)位置替换为str

StringBuffer insert(int offset, xxx):在指定位置插入xxx

StringBuffer reverse() :把当前字符序列逆转

StringBuilder类

  • StringBuilder StringBuffer 非常类似,均代表可变的字符序列,而且提供相关功能的方法也一样
  • 面试题:对比String、StringBuffer、StringBuilder
  1. String(JDK1.0):不可变字符序列
  2. StringBuffer(JDK1.0):可变字符序列、效率低、线程安全
  3. StringBuilder(JDK 5.0):可变字符序列、效率高、线程不安全

注意:作为参数传递的话,方法内部String不会改变其值,StringBuffer和StringBuilder会改变其值


System类

//获取当前系统时间
System.currentTimeMillis(); 

Date类

构造器:

  • Date():使用无参构造器创建的对象可以获取本地当前时间。
  • Date(long date)

常用方法

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

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

  • 其它很多方法都过时了。


SimpleDateFormat类

  • Date类的API不易于国际化,大部分被废弃了,java.text.SimpleDateFormat类是一个不与语言环境有关的方式来格式化和解析日期的具体类。
  • 它允许进行格式化:日期 --》文本、解析:文本 --》日期

格式化:

  • SimpleDateFormat() :默认的模式和语言环境创建对象
  • public SimpleDateFormat(String pattern):该构造方法可以用参数pattern
  • 指定的格式创建一个对象,该对象调用:
  • public String format(Date date):方法格式化时间对象date

解析:

public Date parse(String source):从给定字符串的开始解析文本,以生成一个日期。


Calendar(日历)类

  • Calendar是一个抽象基类,主用用于完成日期字段之间相互操作的功能。

  • 获取Calendar实例的方法

    使用Calendar.getInstance()方法

    调用它的子类GregorianCalendar的构造器。

  • 一个Calendar的实例是系统时间的抽象表示,通过get(int field)方法来取得想要的时间信息。比如YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY 、MINUTE、SECOND

    public void set(int field,int value)

    public void add(int field,int amount)

    public final Date getTime()

    public final void setTime(Date date)

注意

获取月份时:一月是0,二月是1,以此类推,12月是11

==获取星期时:周日是1,周二是2 , 。。。。周六是7==

Calendar并不比Date好多少。它们面临的问题是

  • 可变性:像日期和时间这样的类应该是不可变的。
  • 偏移性:Date中的年份是从1900开始的,而月份都从0开始。
  • 格式化:格式化只对Date有用,Calendar则不行。
  • 此外,它们也不是线程安全的;不能处理闰秒等

新的日期API(JDK1.8)

Java 8 吸收了 Joda-Time 的精华,以一个新的开始为 Java 创建优秀的 API。新的 java.time 中包含了所有关于本地日期(LocalDate)、本地时间(LocalTime)、本地日期时间(LocalDateTime)、时区(ZonedDateTime)和持续时间(Duration)的类。历史悠久的 Date 类新增了 toInstant() 方法,用于把 Date 转换成新的表示形式。这些新增的本地化时间日期 API 大大简化了日期时间和本地化的管理

  • LocalDate、LocalTime、LocalDateTime 类是其中较重要的几个类,它们的实例是不可变的对象,分别表示使用 ISO-8601日历系统的日期、时间、日期和时间。它们提供了简单的本地日期或时间,并不包含当前的时间信息,也不包含与时区相关的信息。

LocalDate代表IOS格式(yyyy-MM-dd)的日期,可以存储 生日、纪念日等日期。

LocalTime表示一个时间,而不是日期。

LocalDateTime是用来表示日期和时间的,这是一个最常用的类之一。

posted on 2020-10-21 11:36  有梦可有为  阅读(149)  评论(0编辑  收藏  举报