字串與日期型別轉換的工具類

執筆記憶的空白發表於2015-04-03

常用的字串轉date    ,和日期轉字串的方法...



package com.cq2022.zago.base.util;

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

import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/***
 * 日期工具類
 * 
 * @author shijing
 * 
 */
public class DateUtils {

	private static final Logger logger = LoggerFactory.getLogger(DateUtils.class);
	
	/***
	 * Date型別轉換成XMLGregorianCalendar型別
	 * 
	 * @param date
	 * @return
	 */
	public static XMLGregorianCalendar convertToXMLGregorianCalendar(Date date) {
		GregorianCalendar cal = new GregorianCalendar();
		cal.setTime(date);
		XMLGregorianCalendar gc = null;
		try {
			gc = DatatypeFactory.newInstance().newXMLGregorianCalendar(cal);
		}
		catch (Exception e) {
			logger.error("Date型別轉換成XMLGregorianCalendar型別出錯:"+e);
		}
		return gc;
	}

	/***
	 * XMLGregorianCalendar型別轉換成Date型別
	 * 
	 * @param cal
	 * @return
	 * @throws Exception
	 */
	public static Date convertToDate(XMLGregorianCalendar cal) throws Exception {
		GregorianCalendar ca = cal.toGregorianCalendar();
		return ca.getTime();
	}

	/**
	 * String 轉 Date
	 * 2015年3月25日上午11:27:14
	 * auther:shijing
	 * @param str 日期字串
	 * @param format 轉換格式
	 * @return
	 * Date
	 */
	public static Date stringToDate(String str, String format) {
		DateFormat dateFormat = new SimpleDateFormat(format);
		Date date = null;
		try {
			date = dateFormat.parse(str);
		}
		catch (ParseException e) {
			logger.error("String型別 轉 Date型別出錯:"+e);
		}
		return date;
	}
	
	/**
	 * Date 轉 String
	 * auther: shijing
	 * 2015年3月25日上午11:28:14
	 * @param date 日期
	 * @param format 轉換格式
	 * @return
	 */
	public static String dateToString(Date date,String format){
		DateFormat dateFormat = new SimpleDateFormat(format);
		String strDate=null;
		try {
			if(date!=null){
				strDate=dateFormat.format(date);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			logger.error("Date型別 轉 String型別出錯:"+e);
		}
		return strDate;
	}
	

	/***
	 * 測試方法
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		XMLGregorianCalendar d = DateUtils
				.convertToXMLGregorianCalendar(new Date());
//		System.out.println(d.getDay());
		XMLGregorianCalendar cal = null;
		try {
			cal = DatatypeFactory.newInstance().newXMLGregorianCalendar();
			cal.setMonth(06);
			cal.setYear(2010);
			Date date = DateUtils.convertToDate(cal);
			String format = "yyyy-MM-dd HH:mm:ss";
			SimpleDateFormat formatter = new SimpleDateFormat(format);
//			System.out.println(formatter.format(date));
			
			Date d1 = DateUtils.stringToDate("2014/7/24 9:51:00", "yyyy/MM/dd hh:mm:ss");
			XMLGregorianCalendar d2 = DateUtils.convertToXMLGregorianCalendar(d1);
//			System.out.println(d2.toString());
			
			String dateStr=DateUtils.dateToString(cal.toGregorianCalendar().getTime(), "yyyy-MM-dd HH:mm:ss");
//			System.out.println("dateStr="+ dateStr);
		}
		catch (Exception e) {
			e.printStackTrace();
		}
	}
}

相關文章