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

如何使用Java函数对日期进行格式化操作?

发布时间:2023-06-10 05:40:08

Java中内置了许多日期和时间相关的函数和类,其中最常用的是DateFormat类和SimpleDateFormat类。这两个类可以用来对日期进行格式化和解析操作。

1. DateFormat类

DateFormat是一个抽象类,不能直接实例化,需要用到它的子类。常见的子类有:

SimpleDateFormat:用于格式化和解析日期时间字符串。

DateFormat类的语法如下:

public abstract class DateFormat extends Format

其中,Format是Java中格式化类的父类,DateFormat类继承了Format的所有方法。

DateFormat方法如下:

1. public StringBuffer format(Date date, StringBuffer toAppendTo)

将日期格式化为给定的字符串并追加到StringBuffer对象中。

2. public String format(Date date)

将日期格式化为给定的字符串并返回。

3. public Date parse(String source)

将给定字符串解析为日期类型。

示例代码:

DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");

Date date = new Date();

String strDate = dateFormat.format(date);

System.out.println(strDate);

这段代码将日期格式化为dd/MM/yyyy格式的字符串,并输出。

2. SimpleDateFormat类

SimpleDateFormat类是DateFormat类的子类,可以格式化Date对象为字符串,也可以将字符串解析为Date对象。与DateFormat不同,SimpleDateFormat可以指定任何日期格式。

以下是SimpleDateFormat中常用的日期格式符号:

yyyy:四位数字表示的年份。

yy:两位数字表示的年份。

MM:数字表示的月份,月份不足两位前面补零。

M:数字表示的月份,没有前导零。

dd:月份中的第几天,不足两位前面补零。

d:月份中的第几天,没有前导零。

HH:小时数,24小时制,不足两位前面补零。

H:小时数,24小时制,没有前导零。

hh:小时数,12小时制,不足两位前面补零。

h:小时数,12小时制,没有前导零。

mm:分,不足两位前面补零。

m:分,没有前导零。

ss:秒,不足两位前面补零。

s:秒,没有前导零。

示例代码:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date date = sdf.parse("2021-10-01 15:30:00");

System.out.println(date);

这段代码将一个字符串解析为Date对象,并输出。

另外,SimpleDateFormat还有一个常用的方法setTimeZone(TimeZone zone),用于设置时区。如果不设置时区,默认为系统时区。

示例代码:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

sdf.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));

Date date = sdf.parse("2021-10-01 15:30:00");

System.out.println(date);

这段代码将一个字符串解析为Date对象,并设置时区为GMT+8:00。