日期格式化工具类

110 阅读2分钟

时间日期的格式化在日常的开发中还是十分常见滴,以下整理了一些常见的日期格式样式:

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

public class DateTimeUtils {

    private static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
    private static final String DEFAULT_TIME_FORMAT_24H = "HH:mm:ss";
    private static final String DEFAULT_TIME_FORMAT_12H = "hh:mm:ss a";
    private static final String DEFAULT_DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
    private static final String DEFAULT_DATETIME_FORMAT_12H = "yyyy-MM-dd hh:mm:ss a";

    public static String formatCurrentDate() {
        return formatCurrentDate(DEFAULT_DATE_FORMAT);
    }

    public static String formatCurrentDate(String pattern) {
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        return sdf.format(new Date());
    }

    public static String formatCurrentTime24H() {
        return formatCurrentTime(DEFAULT_TIME_FORMAT_24H);
    }

    public static String formatCurrentTime12H() {
        return formatCurrentTime(DEFAULT_TIME_FORMAT_12H);
    }

    public static String formatCurrentTime(String pattern) {
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        return sdf.format(new Date());
    }

    public static String formatCurrentDateTime() {
        return formatCurrentDateTime(DEFAULT_DATETIME_FORMAT);
    }

    public static String formatCurrentDateTime12H() {
        return formatCurrentDateTime(DEFAULT_DATETIME_FORMAT_12H);
    }

    public static String formatCurrentDateTime(String pattern) {
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        return sdf.format(new Date());
    }

    public static String formatDateTime(Date date, String pattern) {
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        return sdf.format(date);
    }

    public static Date parseDateTime(String dateTimeString, String pattern) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        return sdf.parse(dateTimeString);
    }

    public static String formatTimestamp(long timestamp, String pattern) {
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        return sdf.format(new Date(timestamp));
    }

    public static long parseTimestamp(String timestampString, String pattern) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        return sdf.parse(timestampString).getTime();
    }

    public static String formatWithTimeZone(String pattern, TimeZone timeZone) {
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        sdf.setTimeZone(timeZone);
        return sdf.format(new Date());
    }

    public static void main(String[] args) {
        System.out.println("Current Date: " + formatCurrentDate());
        System.out.println("Current Time (24H): " + formatCurrentTime24H());
        System.out.println("Current Time (12H): " + formatCurrentTime12H());
        System.out.println("Current Date and Time: " + formatCurrentDateTime());
        System.out.println("Current Date and Time (12H): " + formatCurrentDateTime12H());

        String customPattern = "yyyy年MM月dd日 HH时mm分ss秒";
        System.out.println("Custom Formatted Date and Time: " + formatCurrentDateTime(customPattern));

        try {
            String dateString = "2023-12-30";
            Date parsedDate = parseDateTime(dateString, DEFAULT_DATE_FORMAT);
            System.out.println("Parsed Date: " + formatDateTime(parsedDate, DEFAULT_DATE_FORMAT));
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

在开发的过程中,难免需要将时间格式化成各种类型,经过一番折腾,我的还是觉得需要做一个完整的时间格式化工具类,这样的在开发个过程中就能直接使用,这样岂不是美滋滋