博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中常用的日期格式化(全)
阅读量:4287 次
发布时间:2019-05-27

本文共 8463 字,大约阅读时间需要 28 分钟。

import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** * 获取当前的日期格式为:yyyy-MM-dd HH:mm:ss *  * @author Arthur(user_006) * @version 1.0.0 2010/04/24 14:00(星期六) */public class TimerUtil {	/**	 * 获取当前的日期 , 默认格式	 * 	 * @return 当前的日期	 */	public synchronized static Date getCurrentCalendar() {		Calendar calendar = Calendar.getInstance();		return calendar.getTime();	}	/**	 * 获取当前日期 , 格式yyyy-MM-dd , 如: 2010-04-24	 * 	 * @return	 */	public synchronized static String getCurrentDate() {		Calendar calendar = Calendar.getInstance();		StringBuffer sb = new StringBuffer();		sb.append(calendar.get(Calendar.YEAR)).append("-");		sb.append(calendar.get(Calendar.MONTH) + 1).append("-");		sb.append(calendar.get(Calendar.DAY_OF_MONTH));		return sb.toString();	}	/**	 * 把字符形式的日期转换成Date类型 , 格式yyyy-MM-DD	 * 	 * @param date	 *            日期的字符串形式	 * 	 * @return Data类型的日期	 */	public synchronized static Date convertToDate(String date) {		DateFormat format = new SimpleDateFormat("yyyy-MM-DD");		try {			return format.parse(date);		} catch (ParseException e) {			e.printStackTrace();		}		return null;	}	/**	 * 把日期转换为指定的格式	 * 	 * @param date	 *            要转换的日期	 * @param pattern	 *            转换的格式	 * @return	 */	public synchronized static Date format(Date date, String pattern) {		if (pattern != null && pattern.trim().length() > 0) {			DateFormat format = new SimpleDateFormat(pattern);			String stringDate = format.format(date);			return TimerUtil.convertToDate(stringDate);		}		return null;	}	/**	 * 将日期转换为字符串 , 格式yyyy-MM-dd HH:mm:ss	 * 	 * @param date	 *            要转换的日期	 * @return	 */	public synchronized static String convertToString(Date date) {		DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");		return format.format(date);	}		/**	 * 将日期转换为字符串 , 格式yyyy-MM-dd HH:mm:ss	 * 	 * @param date	 *            要转换的日期	 * @return	 */	public synchronized static String convertToStrShort(Date date) {		DateFormat format = new SimpleDateFormat("yyyy-MM-dd");		return format.format(date);	}	/**	 * 将日期转换为字符串 , 格式yyyyMMddHHmmss	 * 	 * @param date	 *            要转换的日期	 * @return	 */	public synchronized static String convertToString2(Date date) {		DateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");		return format.format(date);	}		/**	 * 将日期转换为指定格式的字符串	 * 	 * @param date	 *            要转换的日期	 * @param formatText	 *            转换的格式	 * @return	 */	public synchronized static String convertToString(Date date,			String formatText) {		DateFormat format = new SimpleDateFormat(formatText);		Calendar calendar = Calendar.getInstance();		StringBuffer sb = new StringBuffer();		sb.append(calendar.get(Calendar.YEAR)).append("-");		sb.append(calendar.get(Calendar.MONTH) + 1).append("-");		sb.append(calendar.get(Calendar.DAY_OF_MONTH));		return format.format(date);	}	/**	 * 获取本周一的日期	 * 	 * @return	 */	public synchronized static Date getMondayOFWeek() {		Calendar calendar = Calendar.getInstance();		calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);// 这里设置从周一开始,若需要根据系统时区自动获取,则采用下边的方式		return calendar.getTime();	}	/**	 * 获取本周日日期	 * 	 * @return	 */	public synchronized static Date getCurrentWeekday() {		Calendar calendar = Calendar.getInstance();		calendar.add(Calendar.DATE, getCurrentPlus());// 把当前日期的DATE加上当前日期与本周日之间相差的天数		return calendar.getTime();	}	/**	 * 获取上周日的日期	 * 	 * @return	 */	public synchronized static Date getPreviousWeekday() {		Calendar calendar = Calendar.getInstance();		// calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);		calendar.add(Calendar.DATE, getCurrentPlus() - 7);// 把当前日期的DATE加上当前日期与本周日之间相差的天数		return calendar.getTime();	}	/**	 * 获取上周日的日期	 * 	 * @return	 */	public synchronized static Date getPreviousMonday() {		Calendar calendar = Calendar.getInstance();		// calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);		calendar.add(Calendar.DATE, getCurrentPlus() - 13);// 把当前日期的DATE加上当前日期与本周日之间相差的天数		return calendar.getTime();	}	/**	 * 获取上周日的日期	 * 	 * @return	 */	public synchronized static Date getNextWeekday() {		Calendar calendar = Calendar.getInstance();		// calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);		calendar.add(Calendar.DATE, getCurrentPlus() + 1 + 6);// 把当前日期的DATE加上当前日期与本周日之间相差的天数		return calendar.getTime();	}	/**	 * 获取上周日的日期	 * 	 * @return	 */	public synchronized static Date getNextMonday() {		Calendar calendar = Calendar.getInstance();		// calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);		calendar.add(Calendar.DATE, getCurrentPlus() + 1);// 把当前日期的DATE加上当前日期与本周日之间相差的天数		return calendar.getTime();	}	/**	 * 获取当前日期与本周周日之间相差的天数	 * 	 * @return	 */	public synchronized static int getCurrentPlus() {		Calendar calendar = Calendar.getInstance();		int days = calendar.get(Calendar.DAY_OF_WEEK) - 1;// 在中国是已星期一作为一周的第一天,所以这里减1		return 7 - days;	}	public synchronized static int getCurrentYear() {		Calendar calendar = Calendar.getInstance();		return calendar.get(Calendar.YEAR);	}	/**	 * 返回指定日期的当月第一天	 * 	 * @param date	 * @return	 */	@SuppressWarnings("static-access")	public synchronized static Date getFirstDayInMonth(Date date) {		Calendar calendar = Calendar.getInstance();		calendar.setTime(date);		calendar.set(calendar.DATE, 1);		return calendar.getTime();	}	/**	 * 返回指定日期的当月最后一天	 * 	 * @param date	 * @return	 */	@SuppressWarnings("static-access")	public synchronized static Date getLastDayInMonth(Date date) {		Calendar calendar = Calendar.getInstance();		calendar.setTime(date);		calendar.add(calendar.MONTH, 1);		calendar.set(calendar.DATE, 1);		calendar.add(calendar.DATE, -1);		return calendar.getTime();	}	/*	 * 计算两个日期之间的天数	 */	public static int getDaysBetween(Calendar d1, Calendar d2) {		if (d1.after(d2)) {			java.util.Calendar swap = d1;			d1 = d2;			d2 = swap;		}		int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);		int y2 = d2.get(Calendar.YEAR);		if (d1.get(Calendar.YEAR) != y2) {			d1 = (Calendar) d1.clone();			do {				days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);// 得到当年的实际天数				d1.add(Calendar.YEAR, 1);			} while (d1.get(Calendar.YEAR) != y2);		}		return days;	}	/*	 * 计算两个日期之间的时间	 */	public static String getGapTime(Date createTime) {		// TODO Auto-generated method stub		Calendar d2 = Calendar.getInstance();		Calendar d1 = Calendar.getInstance();		d1.setTime(createTime);		int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);		if (days < 1) {			int hour = d2.get(Calendar.HOUR_OF_DAY)					- d1.get(Calendar.HOUR_OF_DAY);			if (hour < 1) {				int munites = d2.get(Calendar.MINUTE) - d1.get(Calendar.MINUTE);				if (munites == 0) {					return "刚刚";				} else {					return munites + "分钟前";				}			} else {				return hour + "小时前";			}		} else {			return days + "天前";		}	}		//加天数	public static String addDays(int day){		Calendar calendar = Calendar.getInstance();		calendar.add(Calendar.DAY_OF_MONTH, day);		StringBuffer sb = new StringBuffer();		sb.append(calendar.get(Calendar.YEAR)).append("-");		sb.append(calendar.get(Calendar.MONTH) + 1).append("-");		sb.append(calendar.get(Calendar.DAY_OF_MONTH));		return sb.toString();	}		//加年份	public static String addYears(String now, int year) throws ParseException{		  Calendar fromCal=Calendar.getInstance();		 		   DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");	   Date date=dateFormat.parse(now);	   fromCal.setTime(date);	   fromCal.add(Calendar.YEAR, year);	   	   return dateFormat.format(fromCal.getTime());	 }		//加天数(特定时间)	public static String addDate(String now, int day) throws ParseException{		  Calendar fromCal=Calendar.getInstance();		 		   DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");	   Date date=dateFormat.parse(now);	   fromCal.setTime(date);	   fromCal.add(Calendar.DATE, day);	   	   return dateFormat.format(fromCal.getTime());	 }	/**	 * 格多少时间	 * @throws ParseException 	 */	@SuppressWarnings("deprecation")	public static void main(String[] args) throws ParseException {		System.out.println(TimerUtil.addYears("2008-12-01",7));	}		/*public static void main(String[] args) {			   String createDate = "2008-12-01";			   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");			   try {			    Date date = sdf.parse(createDate);			    Calendar cl = Calendar.getInstance();			    cl.setTime(date);			    cl.add(Calendar.DATE,31);			    String temp = "";			    temp = sdf.format(cl.getTime());			    System.out.println(temp);			   } catch (ParseException e) {			    // TODO Auto-generated catch block			    e.printStackTrace();			   }			}*/}

转载地址:http://kmtgi.baihongyu.com/

你可能感兴趣的文章
swift之判断网络状态Alamofire、Reachability
查看>>
iOS之swift和OC混编、桥接
查看>>
swift之格式化字符串、print格式化打印、debug调试
查看>>
swift之debug调试和控制台ddlb调试
查看>>
swift之kvc
查看>>
swift之常用的修饰符、关键字
查看>>
swift之字典转模型kvc、mjextention桥接、反射、HandyJSON、ObjectMapper、Codable
查看>>
swift之判断类型的方法
查看>>
swift之获取APP各种参数和device参数、获取APPstore信息、以及跳转到appstore
查看>>
swift之MBProgressHUD的使用
查看>>
swift 之-下拉刷新框架的使用
查看>>
swift之闭包的使用
查看>>
swift 之懒加载
查看>>
swift之tabBarController
查看>>
swift之navigationController、navigation bar
查看>>
swift之网络下载图片sdwebImage、Kingfisher、Nuke
查看>>
swift之xib的使用、从xib获取view和控制器、storyboard获取控制器
查看>>
swift之字符串名转类名NSClassFromString
查看>>
swift之按钮的使用
查看>>
swif之Tableview的使用、cell动态高度、侧滑删除、设置中心、个人中心、cell多选、cell单选
查看>>