java 日期时间工具类详解编程语言

import java.text.DateFormat; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Calendar; 
import java.util.Date; 
 
/** 
 *  
 * 日期时间工具类 
 *  
 * 功能: 
 * 		获取当前日期 时间 ,获取年月日时分秒毫秒 
 * 		格式化日期时间 
 * 		日期时间加上或减少n天、n月、n年 
 * 		计算日期相差的天数 
 *  
 * @author Administrator 
 * @Date Jul 19, 2008 
 * @Time 9:47:53 AM 
 * @version 1.0 
 */ 
public class DateUtil { 
 
	public static Date date = null; 
 
	public static DateFormat dateFormat = null; 
 
	public static Calendar calendar = null; 
 
	/** 
	 * 英文简写(默认)如:2010-12-01 
	 */ 
	public static String FORMAT_SHORT = "yyyy-MM-dd"; 
 
	/** 
	 * 英文全称 如:2010-12-01 23:15:06 
	 */ 
	public static String FORMAT_LONG = "yyyy-MM-dd HH:mm:ss"; 
 
	/** 
	 * 精确到毫秒的完整时间 如:yyyy-MM-dd HH:mm:ss.S 
	 */ 
	public static String FORMAT_FULL = "yyyy-MM-dd HH:mm:ss.S"; 
 
	/** 
	 * 中文简写 如:2010年12月01日 
	 */ 
	public static String FORMAT_SHORT_CN = "yyyy年MM月dd"; 
 
	/** 
	 * 中文全称 如:2010年12月01日 23时15分06秒 
	 */ 
	public static String FORMAT_LONG_CN = "yyyy年MM月dd日  HH时mm分ss秒"; 
 
	/** 
	 * 精确到毫秒的完整中文时间 
	 */ 
	public static String FORMAT_FULL_CN = "yyyy年MM月dd日  HH时mm分ss秒SSS毫秒"; 
 
	/** 
	 * 获得默认的 date pattern 
	 */ 
	public static String getDatePattern() { 
		return FORMAT_LONG; 
	} 
 
	/** 
	 * 根据预设格式返回当前日期 
	 *  
	 * @return 
	 */ 
	public static String getNow() { 
		return format(new Date()); 
	} 
 
	/** 
	 * 根据用户格式返回当前日期 
	 *  
	 * @param format 
	 * @return 
	 */ 
	public static String getNow(String format) { 
		return format(new Date(), format); 
	} 
 
	/** 
	 * 使用预设格式格式化日期 
	 *  
	 * @param date 
	 * @return 
	 */ 
	public static String format(Date date) { 
		return format(date, getDatePattern()); 
	} 
 
	/** 
	 * 使用用户格式格式化日期 
	 *  
	 * @param date 
	 *            日期 
	 * @param pattern 
	 *            日期格式 
	 * @return 
	 */ 
	public static String format(Date date, String pattern) { 
		String returnValue = ""; 
		if (date != null) { 
			SimpleDateFormat df = new SimpleDateFormat(pattern); 
			returnValue = df.format(date); 
		} 
		return (returnValue); 
	} 
 
	/** 
	 * 使用预设格式提取字符串日期 
	 *  
	 * @param strDate 
	 *            日期字符串 
	 * @return 
	 */ 
	public static Date parse(String strDate) { 
		return parse(strDate, getDatePattern()); 
	} 
 
	/** 
	 * 使用用户格式提取字符串日期 
	 *  
	 * @param strDate 
	 *            日期字符串 
	 * @param pattern 
	 *            日期格式 
	 * @return 
	 */ 
	public static Date parse(String strDate, String pattern) { 
		SimpleDateFormat df = new SimpleDateFormat(pattern); 
		try { 
			return df.parse(strDate); 
		} catch (ParseException e) { 
			e.printStackTrace(); 
			return null; 
		} 
	} 
 
	/** 
	 * 在日期上增加数个整月 
	 *  
	 * @param date 
	 *            日期 
	 * @param n 
	 *            要增加的月数 
	 * @return 
	 */ 
	public static Date addMonth(Date date, int n) { 
		Calendar cal = Calendar.getInstance(); 
		cal.setTime(date); 
		cal.add(Calendar.MONTH, n); 
		return cal.getTime(); 
	} 
 
	/** 
	 * 在日期上增加天数 
	 *  
	 * @param date 
	 *            日期 
	 * @param n 
	 *            要增加的天数 
	 * @return 
	 */ 
	public static Date addDay(Date date, int n) { 
		Calendar cal = Calendar.getInstance(); 
		cal.setTime(date); 
		cal.add(Calendar.DATE, n); 
		return cal.getTime(); 
	} 
 
	/** 
	 * 获取距现在某一小时的时刻 
	 *  
	 * @param format 
	 *            格式化时间的格式 
	 * @param h 
	 *            距现在的小时 例如:h=-1为上一个小时,h=1为下一个小时 
	 * @return 
	 */ 
	public static String getpreHour(String format, int h) { 
		SimpleDateFormat sdf = new SimpleDateFormat(format); 
		Date date = new Date(); 
		date.setTime(date.getTime() + h * 60 * 60 * 1000); 
		return sdf.format(date); 
	} 
 
	/** 
	 * 获取时间戳 
	 */ 
	public static String getTimeString() { 
		SimpleDateFormat df = new SimpleDateFormat(FORMAT_FULL); 
		Calendar calendar = Calendar.getInstance(); 
		return df.format(calendar.getTime()); 
	} 
 
	/** 
	 * 获取日期年份 
	 *  
	 * @param date 
	 *            日期 
	 * @return 
	 */ 
	public static String getYear(Date date) { 
		return format(date).substring(0, 4); 
	} 
 
	/** 
	 * 功能描述:返回月 
	 *  
	 * @param date 
	 *            Date 日期 
	 * @return 返回月份 
	 */ 
	public static int getMonth(Date date) { 
		calendar = Calendar.getInstance(); 
		calendar.setTime(date); 
		return calendar.get(Calendar.MONTH) + 1; 
	} 
 
	/** 
	 * 功能描述:返回日 
	 *  
	 * @param date 
	 *            Date 日期 
	 * @return 返回日份 
	 */ 
	public static int getDay(Date date) { 
		calendar = Calendar.getInstance(); 
		calendar.setTime(date); 
		return calendar.get(Calendar.DAY_OF_MONTH); 
	} 
 
	/** 
	 * 功能描述:返回小 
	 *  
	 * @param date 
	 *            日期 
	 * @return 返回小时 
	 */ 
	public static int getHour(Date date) { 
		calendar = Calendar.getInstance(); 
		calendar.setTime(date); 
		return calendar.get(Calendar.HOUR_OF_DAY); 
	} 
 
	/** 
	 * 功能描述:返回分 
	 *  
	 * @param date 
	 *            日期 
	 * @return 返回分钟 
	 */ 
	public static int getMinute(Date date) { 
		calendar = Calendar.getInstance(); 
		calendar.setTime(date); 
		return calendar.get(Calendar.MINUTE); 
	} 
 
	/** 
	 * 返回秒钟 
	 *  
	 * @param date 
	 *            Date 日期 
	 * @return 返回秒钟 
	 */ 
	public static int getSecond(Date date) { 
		calendar = Calendar.getInstance(); 
		calendar.setTime(date); 
		return calendar.get(Calendar.SECOND); 
	} 
 
	/** 
	 * 功能描述:返回毫 
	 *  
	 * @param date 
	 *            日期 
	 * @return 返回毫 
	 */ 
	public static long getMillis(Date date) { 
		calendar = Calendar.getInstance(); 
		calendar.setTime(date); 
		return calendar.getTimeInMillis(); 
	} 
 
	/** 
	 * 按默认格式的字符串距离今天的天数 
	 *  
	 * @param date 
	 *            日期字符串 
	 * @return 
	 */ 
	public static int countDays(String date) { 
		long t = Calendar.getInstance().getTime().getTime(); 
		Calendar c = Calendar.getInstance(); 
		c.setTime(parse(date)); 
		long t1 = c.getTime().getTime(); 
		return (int) (t / 1000 - t1 / 1000) / 3600 / 24; 
	} 
 
	/** 
	 * 按用户格式字符串距离今天的天数 
	 *  
	 * @param date 
	 *            日期字符串 
	 * @param format 
	 *            日期格式 
	 * @return 
	 */ 
	public static int countDays(String date, String format) { 
		long t = Calendar.getInstance().getTime().getTime(); 
		Calendar c = Calendar.getInstance(); 
		c.setTime(parse(date, format)); 
		long t1 = c.getTime().getTime(); 
		return (int) (t / 1000 - t1 / 1000) / 3600 / 24; 
	} 
 
	public static void main(String[] args) { 
 
		System.out.println(DateUtil.getNow()); 
	} 
 
}

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/10738.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论