JAVA-日期格式处理工具类

package com.util;

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

/**
 * 日期格式处理工具
 */
public class DateUtil {
	
	/** 字符串格式 */
	private static String pattern;
	
    /**
     * 格式化日期
     * @param date 日期对象
     * @return String 
     */
    public static String format(Date date){
    	
    	//设置字符串格式, 判断是否有外部指定
    	boolean hasPattern = pattern();
    	
    	//按照格式将日期对象转换成字符串
        String str = new SimpleDateFormat(pattern).format(date);
        
        //判断, 当没有指定字符串格式, 并且时分秒是否都为0时, 去除时分秒
        if(!hasPattern && str.indexOf("00:00:00") != -1){
            //如果都为0, 则将时分秒从字符串中去除
            str = str.substring(0, str.indexOf(" ")+1);
        }
        
        pattern = null;
        
        return str;
    }
    
    /**
     * 格式化日期<br>
     * 指定字符串格式
     * @param date 日期对象
     * @param pattern 字符串格式
     * @return String
     */
    public static String format(Date date, String pattern){
    	//设置字符串格式
    	DateUtil.pattern = pattern;
    	//返回格式化的结果
    	return format(date);
    }

    /**
     * 将字符串转换成日期
     * @param time 日期内容
     * @return Date
     * @throws Exception 
     */
    public static Date parse(String time) throws Exception{
    	
        Date date = null;
        
        //设置字符串格式, 判断是否有外部指定
    	boolean hasPattern = pattern();
        
        try {
            //按照字符串参数time有时分秒的格式转换
            date = new SimpleDateFormat(pattern).parse(time);
            pattern = null;
        } catch (ParseException e) {
        	pattern = null;
        	//判断, 是否有外部指定的字符串格式
        	if(!hasPattern) {
        		try {
        			//当无法按照有时分秒的格式转换时, 按照无时分秒的格式转换
        			date = new SimpleDateFormat("yyyy-MM-dd").parse(time);
        		} catch (ParseException e1) {
        			throw new Exception("字符串内容有误, 无法转换成日期对象");
        		}
        	}else {
        		throw new Exception("字符串内容有误, 无法转换成日期对象");
        	}
        }
        return date;
    }
    
    /**
     * 将字符串转换成日期<br>
     * 指定字符串格式
     * @param time 日期内容
     * @param pattern 字符串格式 
     * @return Date
     * @throws Exception 
     */
    public static Date parse(String time, String pattern) throws Exception{
    	//设置字符串格式
    	DateUtil.pattern = pattern;
    	//转换日期对象
    	return parse(time);
    }
    
    /**
     * 设置字符串格式
     * @return 是否有指定的格式true/false
     */
    private static boolean pattern() {
    	
    	//判断, 是否有指定的字符串格式
    	if(pattern != null) return true;
    	
    	//没有指定, 则使用默认格式
    	pattern = "yyyy-MM-dd HH:mm:ss";
    	
    	return false;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员孟云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值