📅  最后修改于: 2023-12-03 15:02:04.075000             🧑  作者: Mango
在Java的应用程序中,日期格式化是一个非常重要的任务。对于某些应用程序来说,日期格式的正确性是保证功能正确性的关键,如金融应用程序等。Java提供了一些内置类和方法来格式化日期,以满足我们的需求。
Java中一个常用的日期类是Date类。这个类有一个toString()方法可以返回日期和时间的字符串,但是它是以固定的格式输出的,这意味着我们不能按照我们自己的要求来格式化日期和时间的输出。
import java.util.Date;
public class DateDemo {
public static void main(String args[]) {
Date date = new Date();
System.out.println(date.toString());
}
}
输出:
Tue Mar 17 15:30:12 GMT+08:00 2020
这个输出格式并不优美。我们现在希望将日期和时间格式化为年月日时分秒的形式。
我们可以使用SimpleDateFormat类来格式化日期和时间。这个类允许我们使用自定义模式来格式化日期和时间。
下面的表格列出了一些常用的日期和时间模式:
| 字母 | 含义 | 示例 | |------|------------------------------------------|-----------------| | y | 年份 | 2019 | | M | 月份 | 2 | | d | 一个月中的第几天 | 12 | | H | 小时(24小时制) | 23 | | m | 分 | 4 | | s | 秒 | 56 | | S | 毫秒 | 234 | | E | 星期几的名称(全称) | Wednesday | | D | 一年中的第几天 | 32 | | F | 一个月中的第几个星期几 (1-5) | 2 | | w | 一年中的第几个星期 | 7 | | W | 一个月中的第几个星期 (1-5) | 1 | | G | 公元前/后 (BC/AD) | AD | | a | 上午/下午 | AM/PM | | z | 时区 | Pacific Standard Time |
我们可以使用以下代码来将日期和时间格式化为标准形式:
import java.util.Date;
import java.text.SimpleDateFormat;
public class DateFormatDemo {
public static void main(String args[]) {
Date date = new Date();
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("Current Date: " + ft.format(date));
}
}
输出:
Current Date: 2020-03-17 15:34:12
在Java 8中引入了新的日期/时间API,它可以处理国际化格式的日期和时间。这个API包括Java.time.LocalDateTime类,它可以处理本地日期和时间,而无需考虑时区问题。
以下是使用Java.time.LocalDateTime类将日期和时间格式化为标准形式的示例:
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class LocalDateTimeDemo {
public static void main(String args[]) {
LocalDateTime myDateObj = LocalDateTime.now();
System.out.println("Before formatting: " + myDateObj);
DateTimeFormatter myFormatObj = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
String formattedDate = myDateObj.format(myFormatObj);
System.out.println("After formatting: " + formattedDate);
}
}
输出:
Before formatting: 2020-03-17T15:35:12.502
After formatting: 17-03-2020 15:35:12
Java提供了多种内置类和方法来格式化日期和时间。我们可以使用Date类和SimpleDateFormat类来处理常规的日期和时间格式化需求,而Java.time.LocalDateTime类则是处理其他国际化格式的日期和时间的绝佳选择。对于需要处理国际化格式日期和时间的应用程序,建议使用Java.time.LocalDateTime类,并使用DateTimeFormatter类来格式化日期和时间的输出。