字符串日期 转换成 需要的格式的 字符串日期(超强)

字符串日期 转换成 需要的格式的 字符串日期

调用:dateformat(String pattern,Object date, boolean ifNullGetNow);

参数1:patern:你想要的日期格式,如:“yyyyMMddHHmmss”,“yyyy-MM-dd HH:mm:ss”,“MMdd”,“yyyy/MM/dd HH:mm:ss”,“dd”,显示单个或多个,都支持,你想要什么给什么。如果你给个年1989,你想要年月日时分秒,后面补0

参数2:date:你想要转的日期字符串,这里是Object是为了支持数据库查出来在map里是Object格式。如果你是date格式或者其他类型的,这种特殊类型你可以用其他的转换方法,这里只支持正常数据库保存的字符串格式。这个参数可以为空,传空,不报错,后台返回给你个""空串。此时,你想如果为空返回当前时间的你要的格式。没问题,最后一个参数控制。

参数3:ifNullGetNow :如果为空获取当前时间。如果你传的日期不为空,你还想要当前时间,不好意思,没有。如果你日期传了空,想要当前时间,这个字段传true,如果不想要当前时间,那么传false,我返回空串。

/**
	 * 传入日期格式和日期,返回目标日期String
	 * @description 日期格式转换,从一种string日期格式转换成目标string日期格式
	 * @param pattern 需要转换的日期格式
	 * @param date 需要转换的日期 如"2005-11:07.11/22:55" "2005-11:07.11/22:55" "2005-11-07" 
	 * @param ifNullGetNow 如果为空或空串,true获取当前时间的需要格式,如果为false,返回date
	 * @return String 目标字符串日期格式
	 * @author LLZ
	 * @date 2021年7月26日
	 */
	public static String dateformat(String pattern,Object date, boolean ifNullGetNow) {
		if(date == null || "".equals(date)) {
			if (ifNullGetNow) {
				return new SimpleDateFormat(pattern).format(new Date());
			} else {
				return "";
			}
		}
		String dateStr = date.toString();
		//将非日期的分隔符去掉
		dateStr = dateStr.replace("-", "").replace(":", "").replace(" ", "").replace("/", "").replace(".", "");
		//yyyyMMddHHmmss 使用这个14位的作为标准格式
		int length = 14 - dateStr.length();
		// 不足14位补0
		if(length > 0) {
			dateStr = dateStr + String.format("%0" + length + "d", 0);
		}
		Date temp;
		try {
			temp = new SimpleDateFormat("yyyyMMddHHmmss").parse(dateStr);//转换成yyyyMMddHHmmss统一格式,拿到Date格式
			return new SimpleDateFormat(pattern).format(temp);//把Date格式再格式化为pattern格式的字符串日期
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
		return null;
	}

网上有很多,不合格,要么不兼容,要么麻烦的要死,写个简单的分享给大家。兼容性很高。给我个字符串日期,然后给我你想要的格式如yyyy-MM-dd或yyyyMMddHHmm或MMdd等等,然后我返回给你这个格式的字符串日期。

我自己写的自己很满意,如果为空,你要是要当前时间的,传个true,我给你当前时间的你要的日期,如果不要,我传空串给你,也不会报错,也不会抛异常。nice,代码简洁,通用性强,易达到目的,且性能好。反正我自己用的非常爽。

调用方法:dateformat(“yyyy-MM-dd HH:mm:ss”,dateString,false);//时间为空的时候,false不要当前时间,true要当前时间。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值