如何将任意格式的日期转换成时间戳

流程图:

flowchart TD
    A[输入日期字符串] --> B(将日期字符串转换成Date对象)
    B --> C(将Date对象转换成时间戳)
    C --> D[输出时间戳]

步骤说明:

  1. 将日期字符串转换成Date对象
  2. 将Date对象转换成时间戳
  3. 输出时间戳

代码实现:

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

public class TimestampConverter {
    public static void main(String[] args) {
        String dateString = "2022-01-01 00:00:00";
        String format = "yyyy-MM-dd HH:mm:ss";

        // 将日期字符串转换成Date对象
        Date date = parseDate(dateString, format);

        // 将Date对象转换成时间戳
        long timestamp = convertToTimestamp(date);

        // 输出时间戳
        System.out.println(timestamp);
    }

    /**
     * 将日期字符串转换成Date对象
     * @param dateString 日期字符串
     * @param format 日期格式
     * @return Date对象
     */
    private static Date parseDate(String dateString, String format) {
        DateFormat dateFormat = new SimpleDateFormat(format);
        try {
            return dateFormat.parse(dateString);
        } catch (ParseException e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 将Date对象转换成时间戳
     * @param date Date对象
     * @return 时间戳
     */
    private static long convertToTimestamp(Date date) {
        return date.getTime();
    }
}

解释代码:

  1. parseDate 方法使用 SimpleDateFormat 将日期字符串转换成 Date 对象。其中,dateString 参数为日期字符串,format 参数为日期格式,根据实际情况进行修改。如果转换失败,则会打印异常信息并返回 null

  2. convertToTimestamp 方法将 Date 对象转换成时间戳。通过 getTime 方法获取自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数作为时间戳。

  3. main 方法中,首先定义一个日期字符串 dateString 和日期格式 format,可以根据实际情况进行修改。

  4. 然后调用 parseDate 方法将日期字符串转换成 Date 对象。

  5. 接着调用 convertToTimestamp 方法将 Date 对象转换成时间戳。

  6. 最后输出时间戳。

类图:

classDiagram
    class TimestampConverter {
        - String parseDate(String dateString, String format)
        - long convertToTimestamp(Date date)
    }
  • TimestampConverter 类包含两个私有方法:parseDateconvertToTimestamp
  • parseDate 方法用于将日期字符串转换成 Date 对象。
  • convertToTimestamp 方法用于将 Date 对象转换成时间戳。