Java函数如何完成日期格式化操作?
Java可以通过内置的日期和时间类库java.util.Date和java.text.SimpleDateFormat来完成日期格式化操作。
java.util.Date类是Java中最基本的日期和时间类,表示从1970年1月1日起经过的毫秒数,常用的构造方法有无参构造方法和带参构造方法。无参构造方法表示当前的系统时间,而带参构造方法可以传入一个代表特定日期和时间的毫秒数,例如:
// 构造当前时间的Date对象 Date now = new Date(); // 构造2022年6月13日的Date对象 Date date = new Date(122, 5, 13);
java.text.SimpleDateFormat类可以将日期和时间格式化为指定的字符串,也可以将字符串解析成日期和时间。SimpleDateFormat类有多个构造方法,其中一个常用的构造方法接收一个字符串作为参数,该字符串指定日期和时间的格式化样式,例如:
// 以 yyyy-MM-dd HH:mm:ss 格式化日期和时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 以 yyyy/MM/dd 格式化日期
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd");
对于日期和时间的格式化,SimpleDateFormat类提供了一系列的格式化符号,其中常用的有:
符号 含义 示例
yyyy 四位年份 2022
MM 两位月份 06
dd 两位日期 13
HH 24小时制的小时数 16
mm 分钟数 56
ss 秒数 30
E 星期几的缩写(英文) Mon
a 上午或下午(英文) PM
具体的格式化样式可以根据需要进行调整,例如将星期几转换成中文可以使用java.text.DateFormatSymbols类,并调用setShortWeekdays方法设置星期的缩写:
DateFormatSymbols dfs = DateFormatSymbols.getInstance(Locale.CHINA);
dfs.setShortWeekdays(new String[]{"", "日", "一", "二", "三", "四", "五", "六"});
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 E", dfs);
使用SimpleDateFormat格式化日期和时间可以调用其format方法,例如:
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = sdf.format(now); // 格式化当前时间
解析字符串为日期和时间可以调用SimpleDateFormat的parse方法,例如:
String dateString = "2022-06-13 16:56:30";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date date = sdf.parse(dateString);
} catch (ParseException e) {
// 处理解析异常
}
总之,Java内置的日期和时间类库使得日期格式化变得非常简单,只需要使用SimpleDateFormat类指定格式即可。在实际应用中还需要注意时区、Locale等问题,但是这些问题已经超出了本文的范畴。
