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

Java中如何进行日期和时间的格式转换

发布时间:2023-05-20 18:01:19

Java中日期和时间的处理是非常常见的,有时候需要进行不同格式的转换,这就需要我们了解一些日期和时间的格式转换函数。

Java中提供了很多日期和时间的类,例如Date、Calendar、SimpleDateFormat、DateTimeFormatter等,下面我们重点介绍SimpleDateFormat的使用。

SimpleDateFormat类是在java.text包中,它是一个具体类,用于格式化和解析日期和时间。这个类允许你格式化的时间/date 展示,也可以将字符串形式的时间/date转换成时间对象。

SimpleDateFormat类的常用方法如下:

1.构造方法:

public SimpleDateFormat(String pattern)

参数pattern:日期和时间的格式,例如:“yyyy-MM-dd HH:mm:ss”

2.format()方法:

public String format(Date date)

将Date类型的日期转换成指定格式的字符串形式。

3.parse()方法:

public Date parse(String source)

将指定格式的字符串形式的时间转换成Date类型的时间。

下面我们来看几个示例:

1. 将Date类型转换成指定格式的字符串形式

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

public class DateFormatTest {
    public static void main(String[] args) {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String strDate = sdf.format(date);
        System.out.println(strDate);
    }
}

输出结果:2022-01-18 14:44:13

2. 将指定格式的字符串形式的时间转换成Date类型的时间。

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

public class DateFormatTest {
    public static void main(String[] args) throws ParseException {
        String strDate = "2022-01-18 14:44:13";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = sdf.parse(strDate);
        System.out.println(date);
    }
}

输出结果:Tue Jan 18 14:44:13 CST 2022

从上面的示例中,我们可以看到SimpleDateFormat类具有很强的转换能力。

另外,有时我们需要获取指定日期的前一天或后一天,这时我们可以使用Calendar类的add方法来实现。

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

public class DateFormatTest {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = calendar.getTime();
        System.out.println("当前时间为:" + sdf.format(date));
        //获取前一天时间
        calendar.add(Calendar.DAY_OF_MONTH, -1);
        date = calendar.getTime();
        System.out.println("前一天的时间为:" + sdf.format(date));
        //获取后一天时间
        calendar.add(Calendar.DAY_OF_MONTH, 2);
        date = calendar.getTime();
        System.out.println("后一天的时间为:" + sdf.format(date));
    }
}

输出结果:

当前时间为:2022-01-18 15:04:15

前一天的时间为:2022-01-17 15:04:15

后一天的时间为:2022-01-19 15:04:15

总之,Java中有很多日期和时间的类,要想熟练掌握日期和时间的处理,我们需要多多练习和实践。