java日期格式转换工具类

package com.ace.backoffice.utils;

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

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

public class DateUtils {
	/**
	 * 将指定字符串转换成日期
	 * 
	 * @param date
	 *            String 日期字符串
	 * @param datePattern
	 *            String 日期格式
	 * @return Date
	 */
	public static java.util.Date getFormatDate(String date, String datePattern) {
		SimpleDateFormat sd = new SimpleDateFormat(datePattern);
		return sd.parse(date, new java.text.ParsePosition(0));
	}
	

	/**
	 * 将指定日期对象转换成格式化字符串
	 * 
	 * @param date
	 *            Date XML日期对象
	 * @param datePattern
	 *            String 日期格式
	 * @return String
	 */
	public static String getFormattedString(Date date, String datePattern) {
		SimpleDateFormat sd = new SimpleDateFormat(datePattern);

		return sd.format(date);
	}

	/**
	 * 将指定XML日期对象转换成格式化字符串
	 * 
	 * @param xmlDate
	 *            Date XML日期对象
	 * @param datePattern
	 *            String 日期格式
	 * @return String
	 */
	public static String getFormattedString(XMLGregorianCalendar xmlDate,
			String datePattern) {
		SimpleDateFormat sd = new SimpleDateFormat(datePattern);

		Calendar calendar = xmlDate.toGregorianCalendar();

		return sd.format(calendar.getTime());
	}

	/**
	 * 将指定XML日期对象转换成日期对象
	 * 
	 * @param xmlDate
	 *            Date XML日期对象
	 * @param datePattern
	 *            String 日期格式
	 * @return Date
	 */
	public static Date xmlGregorianCalendar2Date(XMLGregorianCalendar xmlDate) {
		return xmlDate.toGregorianCalendar().getTime();
	}

	public static String getThisYear() {
		// 获得当前日期
		Calendar cldCurrent = Calendar.getInstance();
		// 获得年月日
		String strYear = String.valueOf(cldCurrent.get(Calendar.YEAR));
		return strYear;
	}

	public static XMLGregorianCalendar convert2XMLCalendar(Calendar calendar) {
		try {
			DatatypeFactory dtf = DatatypeFactory.newInstance();			
			return dtf.newXMLGregorianCalendar(
					calendar.get(Calendar.YEAR),
					calendar.get(Calendar.MONTH)+1,
					calendar.get(Calendar.DAY_OF_MONTH),
					calendar.get(Calendar.HOUR),
					calendar.get(Calendar.MINUTE),
					calendar.get(Calendar.SECOND),
					calendar.get(Calendar.MILLISECOND),
					calendar.get(Calendar.ZONE_OFFSET)/(1000*60));
				
		} catch (DatatypeConfigurationException e) {
			e.printStackTrace();
			return null;
		}
	}

	// 获取当天时间
	public static java.sql.Timestamp getNowTime(String dateformat) {
		Date now = new Date();
		SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);// 可以方便地修改日期格式
		String dateString = dateFormat.format(now);
		SimpleDateFormat sd = new SimpleDateFormat(dateformat);
		Date dateFormt = sd.parse(dateString, new java.text.ParsePosition(0));
		java.sql.Timestamp dateTime = new java.sql.Timestamp(dateFormt
				.getTime());

		return dateTime;
		// return hehe;
	}

	// 获取指定时间
	public static java.sql.Timestamp getNowNewTime(String date,String dateformat){    
        //Date   now   =   new   Date();       
        SimpleDateFormat   dateFormat   =   new   SimpleDateFormat(dateformat);//可以方便地修改日期格式   
        dateFormat.parse(date, new java.text.ParsePosition(0));
        
      //  String  dateString= dateFormat.format(date); 
       Date dateFormt= dateFormat.parse(date, new java.text.ParsePosition(0));
       java.sql.Timestamp dateTime = new java.sql.Timestamp(dateFormt.getTime());
     
       
       return dateTime;
       // return hehe;    
    }
	/**
	 * @param 含有yyyy-MM-dd'T'hh:mm:ss.SSS格式的时间转换.
	 * @return
	 */
	public static String getTFormatString(String tdate) {
		SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
		String str ="";
		try {
			java.util.Date date = format1.parse(tdate);
			SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			 str = format2.format(date);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return str;
	}
	
	public static void main(String[] args) {
		SimpleDateFormat sd = new SimpleDateFormat("yyyyMMdd");
		String date = "20110202";
		System.out.println(sd.parse(date, new java.text.ParsePosition(0)));
		System.out.println(getBefore2HourDate());
	}
	//获取当前时间前2个小时的时间。
	public static String getBefore2HourDate(){
		SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");  
		 Calendar c = Calendar.getInstance();    
		 c.add(Calendar.HOUR_OF_DAY, -2); // 目前時間加3小時    
		return df.format(c.getTime());
		
	}
	
	/**
	 * 
	 * @param time1   当前时间  
	 * @param time2  比较时间 
	 * @return  如果time1比time2大gap分钟,则返回true;
	 */
	public static boolean compareDateTime(Date time1, Date time2, int gap) {
		return time1.getTime() - time2.getTime() > gap * 60 * 1000;
	}
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个Java时间格式转换工具类的示例代码: ``` import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateUtils { private static final String DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss"; /** * 将字符串转换日期 * * @param dateStr 日期字符串 * @param pattern 日期格式 * @return 日期 * @throws ParseException */ public static Date parseDate(String dateStr, String pattern) throws ParseException { DateFormat dateFormat = new SimpleDateFormat(pattern); return dateFormat.parse(dateStr); } /** * 将日期转换为字符串 * * @param date 日期 * @param pattern 日期格式 * @return 日期字符串 */ public static String formatDate(Date date, String pattern) { DateFormat dateFormat = new SimpleDateFormat(pattern); return dateFormat.format(date); } /** * 将日期字符串从一种格式转换为另一种格式 * * @param dateStr 原日期字符串 * @param sourcePattern 原日期格式 * @param targetPattern 目标日期格式 * @return 目标日期字符串 * @throws ParseException */ public static String convertDate(String dateStr, String sourcePattern, String targetPattern) throws ParseException { Date date = parseDate(dateStr, sourcePattern); return formatDate(date, targetPattern); } /** * 将日期字符串从一种格式转换为另一种格式,默认日期格式为"yyyy-MM-dd HH:mm:ss" * * @param dateStr 原日期字符串 * @param targetPattern 目标日期格式 * @return 目标日期字符串 * @throws ParseException */ public static String convertDate(String dateStr, String targetPattern) throws ParseException { return convertDate(dateStr, DEFAULT_PATTERN, targetPattern); } } ``` 使用示例: ``` public static void main(String[] args) throws ParseException { String dateStr = "2022-10-01 12:00:00"; String sourcePattern = "yyyy-MM-dd HH:mm:ss"; String targetPattern = "yyyy/MM/dd HH:mm:ss"; Date date = DateUtils.parseDate(dateStr, sourcePattern); System.out.println(date); String formattedDate = DateUtils.formatDate(date, targetPattern); System.out.println(formattedDate); String convertedDate = DateUtils.convertDate(dateStr, sourcePattern, targetPattern); System.out.println(convertedDate); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值