字符串与日期转换工具类

本文介绍了一个名为DateUtils的Java类,用于处理字符串与日期之间的转换,支持多种日期格式,包括公历和农历的表示方式,以及SimpleDateFormat在转换过程中的应用。
摘要由CSDN通过智能技术生成

字符串与日期转换工具类

public class DateUtils {   
  
    // 私有构造方法,防止实例化  
    private DateUtils() {}  
  
    /**  
     * 将字符串按照指定格式转换为Date对象  
     *  
     * @param dateStr 日期字符串  
     * @param format  日期格式  
     * @return 转换后的Date对象,如果转换失败返回null  
     */  
    public static Date parseDate(String dateStr, String format) {  
        SimpleDateFormat sdf = new SimpleDateFormat(format);  
        try {  
            return sdf.parse(dateStr);  
        } catch (ParseException e) {  
            e.printStackTrace();
            return null;  
        }  
    }  
  
    /**  
     * 将Date对象按照指定格式转换为字符串  
     *  
     * @param date   Date对象  
     * @param format 日期格式  
     * @return 转换后的字符串,如果转换失败返回null  
     */  
    public static String formatDate(Date date, String format) {  
        SimpleDateFormat sdf = new SimpleDateFormat(format);  
        return sdf.format(date);  
    }  
}

日期格式枚举类

public enum DateStyle {

    MM_DD("MM-dd"),
    YYYY_MM("yyyy-MM"),
    YYYY_MM_DD("yyyy-MM-dd"),
    MM_DD_HH_MM("MM-dd HH:mm"),
    MM_DD_HH_MM_SS("MM-dd HH:mm:ss"),
    YYYY_MM_DD_HH_MM("yyyy-MM-dd HH:mm"),
    YYYY_MM_DD_HH_MM_SS("yyyy-MM-dd HH:mm:ss"),

    MM_DD_EN("MM/dd"),
    YYYY_MM_EN("yyyy/MM"),
    YYYY_MM_DD_EN("yyyy/MM/dd"),
    MM_DD_HH_MM_EN("MM/dd HH:mm"),
    MM_DD_HH_MM_SS_EN("MM/dd HH:mm:ss"),
    YYYY_MM_DD_HH_MM_EN("yyyy/MM/dd HH:mm"),
    YYYY_MM_DD_HH_MM_SS_EN("yyyy/MM/dd HH:mm:ss"),

    MM_DD_CN("MM月dd日"),
    YYYY_MM_CN("yyyy年MM月"),
    YYYY_MM_DD_CN("yyyy年MM月dd日"),
    MM_DD_HH_MM_CN("MM月dd日 HH:mm"),
    MM_DD_HH_MM_SS_CN("MM月dd日 HH:mm:ss"),
    YYYY_MM_DD_HH_MM_CN("yyyy年MM月dd日 HH:mm"),
    YYYY_MM_DD_HH_MM_SS_CN("yyyy年MM月dd日 HH:mm:ss"),

    HH_MM("HH:mm"),
    HH_MM_SS("HH:mm:ss");


    private String value;

    DateStyle(String value) {
        this.value = value;
    }

    public String getValue() {
        return value;
    }
}

使用示例

public class MainClass {  
    public static void main(String[] args) {
        //日期转为字符串(格式化)
        String dateStr = DateUtils.formatDate(new Date(), DateStyle.YYYY_MM_DD);
        //字符串转为日期(解析)
        Date date = DateUtils.parseDate("2023-11-10 09:49:02", DateStyle.YYYY_MM_DD);
    }  
}

PS:

SimpleDateFormat类可以将符合特定格式的字符串转换为日期

以下是一些常见特点格式的字符串:

"yyyy-MM-dd":例如 "2023-06-20"

"yyyy/MM/dd":例如 "2023/06/20"

"dd-MMM-yyyy":例如 "20-Jun-2023"

"yyyy-MM-dd HH:mm:ss":例如 "2023-06-20 09:49:02"

"EEE MMM dd yyyy HH:mm:ss zzz":例如 "Tue Jun 20 2023 10:15:30 GMT"

特定格式的意义可通过以下博客查看

SimpleDataFomat类-CSDN博客

  • 13
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值