Java日期格式化输出

在Java中,日期是一个常见的数据类型。在进行日期相关的操作时,通常需要将日期格式化为特定的字符串形式,或者将特定格式的字符串解析为日期对象。Java提供了java.util.Datejava.util.Calendar类来处理日期,同时也提供了java.text.SimpleDateFormat类来进行日期格式化和解析。

1. Date类

java.util.Date类是Java中用于表示日期和时间的类。它保存的是自1970年1月1日00:00:00 UTC以来的毫秒数。我们可以通过以下代码创建一个日期对象:

import java.util.Date;

Date now = new Date();
System.out.println(now);

上述代码将输出当前日期和时间,例如:"Fri Oct 15 15:28:34 CST 2021"。这个输出格式并不符合我们常见的日期显示方式,通常我们需要自定义日期格式。

2. SimpleDateFormat类

java.text.SimpleDateFormat类是用于日期格式化和解析的类。它提供了一些预定义的格式化模式,也可以通过自定义模式来格式化日期。

2.1 预定义格式化模式

以下是一些常用的预定义格式化模式:

  • "yyyy-MM-dd":年-月-日,例如:"2021-10-15"
  • "yyyy年MM月dd日":年月日,例如:"2021年10月15日"
  • "yyyy-MM-dd HH:mm:ss":年-月-日 时:分:秒,例如:"2021-10-15 15:28:34"
  • "yyyy年MM月dd日 HH时mm分ss秒":年月日 时分秒,例如:"2021年10月15日 15时28分34秒"

我们可以使用SimpleDateFormatformat方法将日期对象格式化为指定的字符串形式:

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

Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = sdf.format(now);
System.out.println(formattedDate);

上述代码将输出当前日期和时间的格式化结果,例如:"2021-10-15 15:28:34"。

2.2 自定义格式化模式

除了使用预定义的格式化模式,我们也可以自定义格式化模式来满足特定的需求。以下是一些自定义格式化模式的示例:

  • "yyyy":四位数的年份,例如:"2021"
  • "MM":两位数的月份,例如:"10"
  • "dd":两位数的日期,例如:"15"
  • "HH":两位数的小时(24小时制),例如:"15"
  • "mm":两位数的分钟,例如:"28"
  • "ss":两位数的秒钟,例如:"34"

我们可以根据需要自由组合这些格式化模式来得到想要的日期格式。以下是一个示例:

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

Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String formattedDate = sdf.format(now);
System.out.println(formattedDate);

上述代码将输出当前日期和时间的格式化结果,例如:"2021年10月15日 15时28分34秒"。

2.3 解析日期字符串

除了格式化日期对象,SimpleDateFormat还可以将特定格式的字符串解析为日期对象。我们可以使用parse方法将字符串解析为日期对象:

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

String dateString = "2021-10-15 15:28:34";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(dateString);
System.out.println(date);

上述代码将输出解析后的日期对象,例如:"Fri Oct 15 15:28:34 CST 2021"。

需要注意的是,如果解析的字符串与指定格式不匹配,会抛出ParseException异常。在解析日期字符串时,要确保字符串的格式与指定的格式一致。

3. Calendar类

java.util.Calendar类是一个用于处理日期和时间的抽象类。它提供了一些方法来获取和修改日期的各个字段(年、月、日、时、分、秒等)。

以下是一个示例,演示如何使用Calendar类获取当前日期和时间的各个字段:

import java.util.Calendar;

Calendar calendar