[java][代码]DateUtil用于处理日期和时间

代码是一个Java工具类,名为DateUtil,用于处理日期和时间。它提供了多种日期格式的转换和解析功能。以下是类中定义的一些关键点:

  1. 日期格式常量:定义了多个DateFormat对象,用于不同的日期时间格式,例如yyyy-MM-ddyyyy-MM-dd HH:mm:ss等。

  2. 格式化方法:提供了多个formatDate方法的重载版本,用于将Date对象或其它日期对象格式化为指定格式的字符串。

  3. 获取当前时间getNowTime方法允许用户传入一个日期格式字符串,并返回当前日期时间按照该格式的字符串表示。

  4. 解析方法:提供了parse2Calparse2Date方法,用于将字符串解析为GregorianCalendarDate对象。

  5. 特殊日期解析getSwitchDategetSwitchDate2方法用于解析特定格式的日期字符串。

  6. 日期分隔符常量DATE_SEPARATOR定义了程序中主要使用的日期分隔符,用于解析日期。

  7. 字符串解析工具sToken是一个StringTokenizer对象,用于在解析日期时分割字符串。

这个工具类非常实用,因为它封装了日期时间的常见操作,使得在Java程序中处理日期和时间变得更加方便。


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

/**
 * @author lixiang
 * 
 * 日期结构化类
 */
public class DateUtil {
	public static final DateFormat df = new SimpleDateFormat("yyyy-MM-dd");

	public static final DateFormat dfv2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

	public static final DateFormat dfv3 = new SimpleDateFormat("yyyy");
	
	public static final DateFormat dfv4 = new SimpleDateFormat("yyMMddHHmmss");
	
	public static final DateFormat dfv5 = new SimpleDateFormat("yyyy/MM/dd HH:mm");

	public static final DateFormat dfvcn = new SimpleDateFormat("yyyy年MM月dd日");
	
	public static final DateFormat dfv6 = new SimpleDateFormat("yyyyMMddHHmmss");
	
	public static final DateFormat dfv7 = new SimpleDateFormat("yyyyMMdd");
	
	public static final DateFormat dfv8 = new SimpleDateFormat("yyyy-MM-dd HH:mm");

	public static final String formatDate(Date date) {
		return df.format(date);
	}

	public static final String formatDate(Object date) {
		return df.format(date);
	}

	public static final String formatDateV2(Date date) {
		return dfv2.format(date);
	}

	public static final String formatDateV2(Object date) {
		return dfv2.format(date);
	}

	public static final String formatDateOnlyYear(Date date) {
		return dfv3.format(date);
	}

	public static final String formatDateOnlyYear(Object date) {
		return dfv3.format(date);
	}
	
	public static final String formatDateV4(Date date) {
		return dfv4.format(date);
	}

	public static final String formatDateV4(Object date) {
		return dfv4.format(date);
	}

	public static final String formatDateEncodeCN(Date date) {
		return dfvcn.format(date);
	}

	public static final String formatDateEncodeCN(Object date) {
		return dfvcn.format(date);
	}
	
	public static final String formatDateV5(Date date) {
		return dfv5.format(date);
	}

	public static final String formatDateV5(Object date) {
		return dfv5.format(date);
	}
	
	public static final String formatDateV6(Date date) {
		return dfv6.format(date);
	}

	public static final String formatDateV6(Object date) {
		return dfv6.format(date);
	}
	
	public static final String formatDateV7(Date date) {
		return dfv7.format(date);
	}

	public static final String formatDateV7(Object date) {
		return dfv7.format(date);
	}
	
	public static final String formatDateV8(Date date) {
		return dfv8.format(date);
	}

	public static final String formatDateV8(Object date) {
		return dfv8.format(date);
	}

	public static final String getNowTime(String syntax) {
		DateFormat dateFormat = new SimpleDateFormat(syntax);
		return dateFormat.format(new Date());
	}

	public static final SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd");
	public static final SimpleDateFormat sFullFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	/**
	 * 程序中主要的日期分隔符为"-"和"/",且日期序列为“年/月/日”型,其内容缺一不可 例如:09/02/02或2009-02-02
	 */
	public static final String DATE_SEPARATOR = "-/";
	/** 作日期分析之用 */
	static StringTokenizer sToken;

	/** 将日期变为字符串格式 * */
	public static String format(GregorianCalendar pCal) {
		return sDateFormat.format(pCal.getTime());
	}

	public static String format(Date pDate) {
		return sDateFormat.format(pDate);
	}

	public static String fullFormat(Date pDate) {
		return sFullFormat.format(pDate);
	}

	/** 将字符串格式的日期转换为Calender* */
	public static GregorianCalendar parse2Cal(String pDateStr) {
		sToken = new StringTokenizer(pDateStr, DATE_SEPARATOR);
		int vYear = Integer.parseInt(sToken.nextToken());
		// GregorianCalendar的月份是从0开始算起的,变态!!
		int vMonth = Integer.parseInt(sToken.nextToken()) - 1;
		int vDayOfMonth = Integer.parseInt(sToken.nextToken());
		return new GregorianCalendar(vYear, vMonth, vDayOfMonth);
	}

	/** 将字符串类型的日期(yyyy-MM-dd)转换成Date* */
	public static Date parse2Date(String pDate) {
		try {
			return sDateFormat.parse(pDate);
		} catch (ParseException e) {
			e.printStackTrace();
			return null;
		}

	}

	/**
	 * 将字符串转换成一个日期
	 * 
	 * @param startDate
	 * @return
	 */
	public static Date getSwitchDate(String startDate) {
		Date dt = null;
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		try {
			dt = sdf.parse(startDate);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return dt;
	}

	/**
	 * 将字符串转换成一个日期
	 * 
	 * @param startDate
	 * @return
	 */
	public static Date getSwitchDate2(String startDate) {
		Date dt = null;
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		try {
			dt = sdf.parse(startDate);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return dt;
	}
	
	public static Date getSwitchDate3(String startDate) {
		Date dt = null;
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
		try {
			dt = sdf.parse(startDate);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return dt;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

awonw

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

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

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

打赏作者

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

抵扣说明:

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

余额充值