欢迎访问宙启技术站
智能推送

编写Java函数以将日期时间格式化为指定的字符串格式

发布时间:2023-06-23 22:59:07

Java中有很多方式来格式化日期时间。以下是一些常用的方式:

1. 使用Java日期时间库

Java中有很多日期时间库,如java.time和java.util.Date。您可以使用这些库来格式化DateTime对象。

这里是使用java.time库的示例代码:

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class DateTimeFormatterExample {

  public static void main(String[] args) {

    LocalDateTime dateTime = LocalDateTime.now();
    System.out.println("当前日期时间: " + dateTime);

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    String formattedDateTime = dateTime.format(formatter);

    System.out.println("格式化后的日期时间: " + formattedDateTime);
  }
}

在上述代码中,我们使用LocalDateTime.now()来获取当前日期时间,之后定义了一个格式化模板yyyy-MM-dd HH:mm:ss。最后,我们使用创建的格式化程序来格式化日期时间。

这会产生以下输出:

当前日期时间: 2022-03-01T19:55:12.642386
格式化后的日期时间: 2022-03-01 19:55:12

在这个示例中,我们使用了"yyyy-MM-dd HH:mm:ss"格式,它表示:

- yyyy:4位年份,如2022

- MM:月份,如03

- dd:日,如01

- HH:小时,如19

- mm:分钟,如55

- ss:秒,如12

您可以根据自己的要求来定义不同的格式化模板。

2. 使用SimpleDateFormat

除了Java日期时间库,您还可以使用Java类SimpleDateFormat。这是使用这个类的示例代码:

import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleDateFormatExample {

  public static void main(String[] args) {

    Date date = new Date();
    System.out.println("当前日期时间: " + date);

    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String formattedDate = dateFormat.format(date);

    System.out.println("格式化后的日期时间:" + formattedDate);
  }
}

在这个代码示例中,我们获取了当前日期时间并使用SimpleDateFormat来格式化日期时间。结果与先前的示例类似。

3. 使用DateTimeFormatterBuilder

您还可以使用DateTimeFormatterBuilder来构建格式化程序,以便对不同的日期时间格式进行格式化。以下是使用DateTimeFormatterBuilder的示例代码:

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.format.TextStyle;
import java.util.Locale;

public class DateTimeFormatterBuilderExample {

  public static void main(String[] args) {

    LocalDateTime dateTime = LocalDateTime.now();
    System.out.println("当前日期时间: " + dateTime);

    DateTimeFormatter formatter = new DateTimeFormatterBuilder()
        .appendText(ChronoField.YEAR, new SimpleDateFormat("yyyy"))
        .appendLiteral("-")
        .appendText(ChronoField.MONTH_OF_YEAR, TextStyle.SHORT_STANDALONE)
        .appendLiteral("-")
        .appendText(ChronoField.DAY_OF_MONTH, new SimpleDateFormat("dd"))
        .appendLiteral(" ")
        .appendText(ChronoField.HOUR_OF_DAY)
        .appendLiteral(":")
        .appendText(ChronoField.MINUTE_OF_HOUR, new SimpleDateFormat("mm"))
        .appendLiteral(":")
        .appendText(ChronoField.SECOND_OF_MINUTE, new SimpleDateFormat("ss"))
        .toFormatter(Locale.ENGLISH);

    String formattedDateTime = dateTime.format(formatter);

    System.out.println("格式化后的日期时间:" + formattedDateTime);
  }
}

在这个示例代码中,我们使用DateTimeFormatterBuilder构建了一个日期格式化程序,并将其应用于LocalDateTime对象。我们先定义了预期的格式,然后使用DateTimeFormatterBuilder.appendText()方法将其添加到格式化程序中。

参考链接:

- Java日期时间库官方文档: <https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/package-summary.html>

- Java文档:SimpleDateFormat: <https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/text/SimpleDateFormat.html>

- Java文档:DateTimeFormatter: <https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/format/DateTimeFormatter.html>

- Java文档:DateTimeFormatterBuilder: <https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/format/DateTimeFormatterBuilder.html>