Java中字符串时间转化为去掉时分秒的Date时间

在Java中,经常会遇到需要将字符串时间转化为Date对象,并且去掉时分秒的情况。这种情况下,我们通常需要将字符串时间先转化为Date对象,然后再将其转化为只包含年月日的Date对象。本文将介绍如何通过Java代码实现这一功能。

1. 字符串时间转化为Date对象

首先,我们需要将字符串时间转化为Date对象。Java中常用的类是SimpleDateFormat,通过SimpleDateFormat可以定义时间格式,并将字符串时间解析为Date对象。

下面是一个示例代码:

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

public class StringToDateExample {

    public static void main(String[] args) {
        String dateString = "2021-06-15 15:30:45";
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        try {
            Date date = dateFormat.parse(dateString);
            System.out.println("String time: " + dateString);
            System.out.println("Date object: " + date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.

在上面的示例中,我们定义了一个字符串时间"2021-06-15 15:30:45",并通过SimpleDateFormat将其解析为Date对象。最终输出结果为:

String time: 2021-06-15 15:30:45
Date object: Tue Jun 15 15:30:45 CST 2021
  • 1.
  • 2.

2. 去掉时分秒

接下来,我们需要将包含时分秒的Date对象转化为不包含时分秒的Date对象。一种简单的方法是通过Calendar类来操作Date对象,将时分秒设置为0。

下面是一个示例代码:

import java.util.Calendar;
import java.util.Date;

public class RemoveTimeExample {

    public static void main(String[] args) {
        Date dateWithTime = new Date();
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(dateWithTime);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);

        Date dateWithoutTime = calendar.getTime();

        System.out.println("Date with time: " + dateWithTime);
        System.out.println("Date without time: " + dateWithoutTime);
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

在上面的示例中,我们获取当前的Date对象,然后通过Calendar将其时分秒设置为0,最终输出结果为:

Date with time: Wed Jun 16 15:30:45 CST 2021
Date without time: Wed Jun 16 00:00:00 CST 2021
  • 1.
  • 2.

3. 完整代码

下面是将字符串时间转化为去掉时分秒的Date时间的完整代码:

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

public class StringToDateWithoutTimeExample {

    public static void main(String[] args) {
        String dateString = "2021-06-15 15:30:45";
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        try {
            Date date = dateFormat.parse(dateString);

            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            calendar.set(Calendar.HOUR_OF_DAY, 0);
            calendar.set(Calendar.MINUTE, 0);
            calendar.set(Calendar.SECOND, 0);
            calendar.set(Calendar.MILLISECOND, 0);

            Date dateWithoutTime = calendar.getTime();

            System.out.println("String time: " + dateString);
            System.out.println("Date without time: " + dateWithoutTime);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.

4. 总结

通过本文的介绍,我们学习了如何将字符串时间转化为去掉时分秒的Date时间。首先,我们将字符串时间解析为Date对象,然后通过Calendar将其时分秒设置为0,最终得到只包含年月日的Date对象。

希望本文对你有所帮助!如果有任何问题或疑问,欢迎留言讨论。感谢阅读!