`

日期格式化工具类

阅读更多
package com.sound.cityportal.base.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 处理时间格式函数
 * 
 * @author zhangyong
 */
public class DateUtil {
	private Date date;

	public DateUtil(Date date) {
		if (null == date) {
			date = new Date();
		} else {
			this.date = date;
		}
	}

	/**
	 * 格式化时间样式
	 * 
	 * @return 返回 yyyy-MM-dd HH:mm:ss 格式字符串
	 */
	public String toFormat() {
		String patten = "yyyy-MM-dd HH:mm:ss";
		return toFormat(patten);
	}

	/**
	 * 格式化为指定格式
	 * 
	 * @param patten
	 *            日期格式如:yyyy/MM/dd
	 */
	public String toFormat(String patten) {
		SimpleDateFormat sdf = new SimpleDateFormat(patten);
		String returnStr = sdf.format(date);
		return returnStr;
	}
	public static String toFormatYmdHms() {
		String patten = "yyyy-MM-dd HH:mm:ss";
		SimpleDateFormat sdf = new SimpleDateFormat(patten);
		String returnStr = sdf.format(new Date());
		return returnStr;
	}

	/**
	 * 格式化为指定格式
	 * 
	 * @param strDate
	 *            日期格式如:yyyy-MM-dd HH:mm:ss
	 * @throws ParseException 
	 */
	public static Date str2Date(String strDate) throws ParseException {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return sdf.parse(strDate);
	}
	/**
	 * 
	* @Title: dateToString
	* @Description: 时间转字符串
	* @param @param date
	* @param @return
	* @param @throws ParseException    设定文件 
	* @return String    返回类型 
	* @throws 
	* @author Lvshiyang
	* @date 2017年11月23日 下午6:24:14
	 */
	public static String dateToString(Date date) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
		return sdf.format(date);
		 
	}

	
	/**
	 * 计算两个日期之间相差的天数
	 * 
	 * @param smdate
	 *            较小的时间
	 * @param bdate
	 *            较大的时间
	 * @return 相差天数
	 * @throws ParseException
	 */
	public static int daysBetween(Date smdate, Date bdate) throws ParseException {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		smdate = sdf.parse(sdf.format(smdate));
		bdate = sdf.parse(sdf.format(bdate));
		Calendar cal = Calendar.getInstance();
		cal.setTime(smdate);
		long time1 = cal.getTimeInMillis();
		cal.setTime(bdate);
		long time2 = cal.getTimeInMillis();
		long between_days = (time2 - time1) / (1000 * 3600 * 24);
		return Integer.parseInt(String.valueOf(between_days));
	}

	/**
	 * 获取某月的天数
	 * 
	 * @param year
	 *            年份,如果不传默认使用当前年
	 * @param month
	 *            月份,入股不传默认使用当前月
	 * @return
	 */
	public static int getDaysOfMonth(Integer year, Integer month) {
		Calendar time = Calendar.getInstance();
		//获取当前年月
		int currYear = time.get(Calendar.YEAR);
		int currMonth = time.get(Calendar.MONTH) + 1;
		time.clear();
		time.set(Calendar.YEAR, null == year ? currYear : year);
		time.set(Calendar.MONTH, null == month ? currMonth : month - 1);
		return time.getActualMaximum(Calendar.DAY_OF_MONTH);
	}

    /**
     * @Description  获取当前时间的当前月的第一天
     */
    public static String firstDayOfMonth(){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar   cal_1=Calendar.getInstance();
        cal_1.add(Calendar.MONTH, -1);
        cal_1.set(Calendar.DAY_OF_MONTH,1);
        return sdf.format(cal_1.getTime());
    }

    /**
     * @Description 获取当前时间的当前月的最后一天
     */
    public static String lastDayOfMonth(){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar cale = Calendar.getInstance();
        cale.set(Calendar.DAY_OF_MONTH,0);
        return sdf.format(cale.getTime());
    }

	/**
     * @describe:long类型变日期类型
     * @author wangruwei
     * @date 2018年4月9日上午11:26:48
     * @param time
     * @return
     */
    public static Date longToDate(long time){
    	SimpleDateFormat format =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
    	String d = format.format(time);  
    	Date date;
		try {
			date = format.parse(d);
			return date;
		} catch (ParseException e) {
			e.printStackTrace();
			return null;
		}
    	
    }
	/**
     * @describe:日期正则表达式    格式如:yyyy-MM-dd
     * @author Lvshiyang
     * @date 2018年4月19日10:36:36
     */
    public static final String YMD_REXP = "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))";
    public static boolean YMD_REXP(String date){
    	Pattern p = Pattern.compile(YMD_REXP);  
    	Matcher startM = p.matcher(date);
    	boolean b = startM.matches();
    	return b; 
    }

	/**
	 * java8 java.time.LocalDateTime --> java.util.Date
	 */
	public static Date LocalDateTimeToUdate() {
		LocalDateTime localDateTime = LocalDateTime.now();
		ZoneId zone = ZoneId.systemDefault();
		Instant instant = localDateTime.atZone(zone).toInstant();
		java.util.Date date = Date.from(instant);
		return date;
	}

	/**
     * @describe:日期正则表达式    格式如:yyyy-MM-dd HH:mm:ss
     * @author Lvshiyang
     * @date 2018年4月19日10:36:36
     */
    public static final String YMDHMS_REXP = "^(((20[0-3][0-9]-(0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|(20[0-3][0-9]-(0[2469]|11)-(0[1-9]|[12][0-9]|30))) (20|21|22|23|[0-1][0-9]):[0-5][0-9]:[0-5][0-9])$";
    public static boolean YMDHMS_REXP(String date){
    	return Pattern.compile(YMDHMS_REXP).matcher(date).matches();  
    }
}

 

分享到:
评论

相关推荐

    时间格式化工具类

    "时间格式化工具类"通常是指自定义的类,用于封装Java标准库中的`java.time`或`java.text.SimpleDateFormat`等类的功能,以提供更方便、更灵活的时间处理方法。下面我们将深入探讨这个主题。 首先,`java.time`包是...

    java时间日期格式化工具类

    本篇文章将深入探讨Java中的日期格式化工具类及其使用方法,主要围绕提供的`DateUtil`工具类展开。 首先,`java.util.Date`是Java早期用于表示日期和时间的基础类,但它并不提供直接的格式化功能。为了将`Date`对象...

    一个简单的时间格式化工具类

    2. **SimpleDateFormat**: 虽然java.time API是推荐的,但SimpleDateFormat是旧的日期时间格式化工具,也可能在工具类中用于兼容旧版本的Java环境。 3. **静态方法**: 如`format(Date date, String pattern)`,接收...

    iOS日期格式化工具类

    "iOS日期格式化工具类"是一个专门处理这一问题的自定义类,旨在简化开发者的工作流程。这个工具类不仅能够按照特定的格式输出日期,如"YYYY-MM-dd HH:mm:ss",还支持生成适合作为文件名称的日期字符串,确保文件命名...

    java日期格式化工具类

    java日期格式化工具类,一些常用的日期操作方法

    js通用日期格式化工具 date.js

    js通用日期格式化工具,直接引用该工具类就可以使用,方便快捷,建议大家收藏此工具类,该工具很好的解决了前端页面显示日期格式问题

    Java 日期格式化 工具类

    Date和String的相互转换 得到指定日期所在周的星期几的日期 获取指定年的第几周的最后一天日期 获取指定年的第几周的第一天日期 获取指定日期为当前年的第几周 ...获取当前时间前2个小时的时间 获取当前年份

    sql代码格式化工具类

    本工具“sql代码格式化工具类”是专为Java项目设计的,旨在帮助开发者快速有效地对SQL语句进行格式化,提升代码质量和维护效率。 首先,我们要理解SQL格式化的意义。SQL语句通常会因为快速编写或复制粘贴而变得混乱...

    Java日期工具类,Java时间工具类,Java时间格式化

    本篇将围绕Java中的日期工具类和时间工具类展开讨论,同时会涉及到日期时间的格式化。 首先,Java 8之前,我们主要依赖`java.util.Date`和`java.text.SimpleDateFormat`这两个类来处理日期和时间。`Date`类用于表示...

    格式化时间工具类

    1. **日期时间格式化**:使用`SimpleDateFormat`或`DateTimeFormatter`类将日期时间对象转换为指定格式的字符串。例如,`formatDate(LocalDate date, String pattern)`和`formatDateTime(LocalDateTime dateTime, ...

    数字格式化工具类

    6. **日期时间格式化**:虽然不是直接针对数字,但与之相关的日期和时间格式化也是常见的需求,可以将日期时间转换为各种格式,如"年-月-日"、"HH:mm:ss"等。 7. **国际化支持**:考虑到全球化的应用,工具类可能...

    源代码格式化工具源代码格式化软件

    源代码格式化工具是程序员日常开发中不可或缺的辅助软件,它们的主要作用是统一代码风格,提高代码可读性,减少因格式不一致引起的争议和冲突。这类工具通常能够按照特定的语言规范,自动调整代码的缩进、空格、换行...

    Delphi6和Delphi7代码格式化工具

    使用这样的代码格式化工具,开发者可以快速地整理代码,使其符合标准的缩进规则,调整括号的位置,以及统一变量、函数和类的命名风格。此外,一些高级的格式化工具还可能提供自定义设置,允许用户根据自己的喜好或...

    专业格式化工具

    标题中的“专业格式化工具”指的是专门用于对存储设备进行高效、完整格式化的软件应用。这类工具通常设计得用户友好,能确保数据安全清除,并优化设备的读写性能。描述中提到的“没有碎片”意味着该工具在格式化时会...

    日期处理工具类

    日期处理工具类,项目中的工具类,测试无bug,请放心使用

    C 代码格式化工具

    将代码格式化工具嵌入到Keil中,可以提升开发效率,避免因为手动格式化代码而浪费时间,确保团队成员之间的代码风格一致性。 在C语言编程中,良好的代码风格不仅有助于提高代码的可读性,还能够降低出错的可能性。...

    DateFormatUtils时间获取及格式化工具类

    时间格式化及获取特殊时间工具类 主要包含但不限于: 当前星期的第一天 当前月最后一天 获取时间到今日结束还剩多少秒 获取 是否大于当前时间 相关的交易日 (年处理)入参yyyy 查询距离当前系统时间的本周星期一、...

    日期格式化/日期时间差等日期相关的工具类

    日期格式化/日期时间差等日期相关的工具类:日期格式化,格式转换,时间差等

    Android 时间格式化Demo

    本Demo是专为学习Android中的时间格式化而编写的,包含了一个实用的时间格式化工具类。通过这个Demo,我们可以深入理解如何在Android应用中处理日期和时间。 在Android中,我们通常使用`java.text.SimpleDateFormat...

Global site tag (gtag.js) - Google Analytics