Java日期格式转换,计算工具

Java日期格式转换,计算工具,以及月份,周次等日历相关内容查找工具

包含功能:

  1. 获取当前时间
  2. 将 java.util.Date 转换为指定格式的字符串
  3. 将 时间格式的字符串 转换 java.util.Date
  4. 判断两个时间是否是属于同一周
  5. 计算两个日期之间隔了多少秒/小时/天等
  6. 比较俩个时间字符串的时间先后顺序
  7. 获取某月的第一天和最后一天,如 2017-08-01,则获得2017-07-01 00:00:00,2017-07-31 00:00:00
  8. 获得某年的第几周次的第一天时间(周日为一周的开始)
  9. 日期的任意加减
  10. 优美的时间格式处理 比如 “今天 16:31”,“明天 16:31”,“2029年6月24日17:33”等。还有处理成带有星期的时间展示,比如 “2018-01-01 星期一”,“2018-01-01 星期一 18:32”等
  11. 计算两个时间之间的时间差,并自动展示给出来二者的时间,支持刚刚,已等待多少天/小时/分钟等等
  12. 获得本周的 周一时间或周日时间

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

/**
 * 日期格式转换,计算工具
 * 
 * @author 才揽
 * */
public class DateKit {
   
   
	private static final String DATE_PATTERN = "yyyy-MM-dd";
	private static final String DATE_PATTERN_TIME = "yyyy-MM-dd HH:mm:ss";
	private static final String DATE_PATTERN_YMD_HM = "yyyy-MM-dd HH:mm";
	private static final String DATE_PATTERN_MD_HM = "MM-dd HH:mm";
	private static final String DATE_PATTERN_HM = "HH:mm"; 
	private static final String BLANK = " ";
	private static final int[] WEEK_NO_ARRYA = new int[] {
   
   1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,
			17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,
			40,41,42,43,44,45,46,47,48,49,50,51,52,53}; 
	private static final int[] MONTH_NO_ARRYA = new int[] {
   
   1,2,3,4,5,6,7,8,9,10,11,12}; 
	private static final String[] WEEKDAYS = {
   
    "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
	
	/**
	 * 获取当前时间
	 * 
	 * @return java.util.Date
	 */
	public static Date getNowDate() {
   
   
		return new Date();
	}
	
	/**
	 * 将 java.util.Date 转换为指定格式的字符串
	 * 字符串格式 yyyy-MM-dd
	 * 
	 * @param date
	 * @retrun String 字符串格式 yyyy-MM-dd
	 * */
	public static String toStr(Date date) {
   
   
		return toStr(date, DATE_PATTERN);
	}
	
	/**
	 * 将 java.util.Date 转换为指定格式的字符串
	 * 字符串格式 yyyy-MM-dd HH:mm:ss
	 * 
	 * @param date
	 * @retrun String 字符串格式 yyyy-MM-dd
	 * */
	public static String toTimeStr(Date date) {
   
   
		return toStr(date, DATE_PATTERN_TIME);
	}
	
	/**
	 * 将 java.util.Date 转换为指定格式的字符串
	 * 
	 * @param date 时间
	 * @param pattern 格式,如 yyyy-MM-dd
	 * @return String 字符串格式 pattern
	 * */
	public static String toStr(Date date, String pattern) {
   
   
		SimpleDateFormat sdf = new SimpleDateFormat(pattern);
		return sdf.format(date);
	}
	
	/**
	 * 将 时间格式的字符串 转换 java.util.Date
	 * 
	 * @param dateStr 时间格式的字符串
	 * @return java.util.Date
	 * */
	public static Date toDate(String dateStr) {
   
   
		if (strIsBlank(dateStr)) {
   
   
			return null;
		}
		dateStr = dateStr.trim();
		int length = dateStr.length();
		try {
   
   
			if (length == DATE_PATTERN_TIME.length()) {
   
   
				SimpleDateFormat sdf = new SimpleDateFormat(DATE_PATTERN_TIME);
				try {
   
   
					return sdf.parse(dateStr);
				} catch (ParseException e) {
   
   
					dateStr = dateStr.replace(".", "-");
					dateStr = dateStr.re
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值