Java常用日期类

发布时间:2023年12月18日

1.日期类

1.Date类

比较常用的日期类,

import java.util.Date;

public class DateExample {
    public static void main(String[] args) {
        Date now = new Date();
        SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateStr=df.format(now);
        System.out.println("Current time: " + now);
    }
}

date类的使用比较简单,但在使用过程中会出现可变性、线程安全性等不足。

2.localDate类

import java.time.LocalDate;

public class LocalDateExample {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        System.out.println("Today's date: " + today);
    }
}

LocalDate 类提供了一系列方法用于获取、设置和操作日期。例如,我们可以使用 getYear()、getMonthValue() 和 getDayOfMonth() 分别获取年份、月份和日期。此外,还可以使用 plusDays()、minusMonths() 等方法进行日期的加减运算。
?

    //用localDate获取当前是今年第几周
    LocalDate localDateDay =LocalDate.now();
	int ByLocalDateTime = localDateDay.get(WeekFields.ISO.weekOfYear())
	System.out.println("第几周ByLocalDateTime="+ByLocalDateTime);

2.日期转换类

1.DateTimeFormatter和SimpleDateFormat

简介:

DateTimeFormatter 和 SimpleDateFormat 都是用于格式化日期和时间的类,但是它们有一些区别。

SimpleDateFormat 是 Java 早期版本中提供的日期格式化类,他是线程不安全的。由于 SimpleDateFormat 是线程不安全的,所以如果在多线程环境中使用会出现异常,通常的解决方法要么是每个线程独立维护一份 SimpleDateFormat 对象实例,要么是将 SimpleDateFormat 放到 ThreadLocal 中。

在Java 8中新增了DateTimeFormatter 类,它比 SimpleDateFormat 更加灵活和安全。DateTimeFormatter 是不变对象,且是线程安全的。所以在使用 DateTimeFormatter 的时候,可以以静态成员变量的方式,在一个类中只维护一份对象实例,用于格式化多个日期和时间值,而无需担心线程安全问题。
?

区别:

  1. DateTimeFormatter 和 SimpleDateFormat 都是 Java 中用于日期和时间格式化的类,但它们之间存在以下区别:
  2. 线程安全性:DateTimeFormatter 是线程安全的,而 SimpleDateFormat 不是。
  3. 类型支持:DateTimeFormatter 支持多种日期和时间类型,例如 LocalDate、LocalTime、LocalDateTime、ZonedDateTime、OffsetDateTime 等。而 SimpleDateFormat 只支持 Date 类型。
  4. 解析能力:DateTimeFormatter 可以将字符串解析为日期和时间类型,而 SimpleDateFormat 不支持解析操作。
  5. 本地化:DateTimeFormatter 支持本地化,可以根据不同的语言和国家的习惯格式化日期和时间。而 SimpleDateFormat 也支持本地化,但使用较为麻烦。
    ?

文章来源:https://blog.csdn.net/qq_44038822/article/details/135019501
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。