Java日期格式化输出
在Java中,日期是一个常见的数据类型。在进行日期相关的操作时,通常需要将日期格式化为特定的字符串形式,或者将特定格式的字符串解析为日期对象。Java提供了java.util.Date
和java.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秒"
我们可以使用SimpleDateFormat
的format
方法将日期对象格式化为指定的字符串形式:
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