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中的日期格式化工具类及其使用方法,主要围绕提供的`DateUtil`工具类展开。 首先,`java.util.Date`是Java早期用于表示日期和时间的基础类,但它并不提供直接的格式化功能。为了将`Date`对象...
2. **SimpleDateFormat**: 虽然java.time API是推荐的,但SimpleDateFormat是旧的日期时间格式化工具,也可能在工具类中用于兼容旧版本的Java环境。 3. **静态方法**: 如`format(Date date, String pattern)`,接收...
"iOS日期格式化工具类"是一个专门处理这一问题的自定义类,旨在简化开发者的工作流程。这个工具类不仅能够按照特定的格式输出日期,如"YYYY-MM-dd HH:mm:ss",还支持生成适合作为文件名称的日期字符串,确保文件命名...
java日期格式化工具类,一些常用的日期操作方法
js通用日期格式化工具,直接引用该工具类就可以使用,方便快捷,建议大家收藏此工具类,该工具很好的解决了前端页面显示日期格式问题
Date和String的相互转换 得到指定日期所在周的星期几的日期 获取指定年的第几周的最后一天日期 获取指定年的第几周的第一天日期 获取指定日期为当前年的第几周 ...获取当前时间前2个小时的时间 获取当前年份
本工具“sql代码格式化工具类”是专为Java项目设计的,旨在帮助开发者快速有效地对SQL语句进行格式化,提升代码质量和维护效率。 首先,我们要理解SQL格式化的意义。SQL语句通常会因为快速编写或复制粘贴而变得混乱...
本篇将围绕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. **国际化支持**:考虑到全球化的应用,工具类可能...
源代码格式化工具是程序员日常开发中不可或缺的辅助软件,它们的主要作用是统一代码风格,提高代码可读性,减少因格式不一致引起的争议和冲突。这类工具通常能够按照特定的语言规范,自动调整代码的缩进、空格、换行...
使用这样的代码格式化工具,开发者可以快速地整理代码,使其符合标准的缩进规则,调整括号的位置,以及统一变量、函数和类的命名风格。此外,一些高级的格式化工具还可能提供自定义设置,允许用户根据自己的喜好或...
标题中的“专业格式化工具”指的是专门用于对存储设备进行高效、完整格式化的软件应用。这类工具通常设计得用户友好,能确保数据安全清除,并优化设备的读写性能。描述中提到的“没有碎片”意味着该工具在格式化时会...
日期处理工具类,项目中的工具类,测试无bug,请放心使用
将代码格式化工具嵌入到Keil中,可以提升开发效率,避免因为手动格式化代码而浪费时间,确保团队成员之间的代码风格一致性。 在C语言编程中,良好的代码风格不仅有助于提高代码的可读性,还能够降低出错的可能性。...
时间格式化及获取特殊时间工具类 主要包含但不限于: 当前星期的第一天 当前月最后一天 获取时间到今日结束还剩多少秒 获取 是否大于当前时间 相关的交易日 (年处理)入参yyyy 查询距离当前系统时间的本周星期一、...
日期格式化/日期时间差等日期相关的工具类:日期格式化,格式转换,时间差等
本Demo是专为学习Android中的时间格式化而编写的,包含了一个实用的时间格式化工具类。通过这个Demo,我们可以深入理解如何在Android应用中处理日期和时间。 在Android中,我们通常使用`java.text.SimpleDateFormat...