package com.dc.util; import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /* ****************** 类说明 ********************* * class : TimeUtil * @author : ncc * create time : 2017-12-19 上午11:03:11 * @version : 1.0 * description : 日期时间获取 * @see : * ************************************************/ public class TimeUtil { /* ******************************************** * method name : date * description : 按指定格式获取当前时间 * @return : String * @param : @param fmt * @param : @return * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String date(String fmt) { return new SimpleDateFormat(fmt).format(new Date()); } /* ******************************************** * method name : date * description : 获取指定时间对应的指定格式获取 * @return : String * @param : @param fmt * @param : @param t * @param : @return * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String date(String fmt, long t) { return new SimpleDateFormat(fmt).format(new Date(t)); } /* ******************************************** * method name : date8 * description : 获取八位日期 yyyyMMdd * @return : String * @param : @return * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String date8() { return new SimpleDateFormat("yyyyMMdd").format(new Date()); } /* ******************************************** * method name : date8 * description : 将时间转换为8位日期 yyyyMMdd * @return : String * @param : @param date * @param : @return * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String date8(Date date) { return new SimpleDateFormat("yyyyMMdd").format(date); } /* ******************************************** * method name : time6 * description : 获取6位当前时间 HHmmss * @return : String * @param : @return * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String time6() { return new SimpleDateFormat("HHmmss").format(new Date()); } /* ******************************************** * method name : time9 * description : 获取9位当前时间 HHmmssSSS * @return : String * @param : @return * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String time9() { return new SimpleDateFormat("HHmmssSSS").format(new Date()); } /* ******************************************** * method name : dateByHour * description : 获取指定时间对应的日期时间 yyyyMMddHH * @return : String * @param : @param date * @param : @return * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String dateByHour( ) { return new SimpleDateFormat("yyyyMMddHH").format(new Date()); } /* ******************************************** * method name : time6 * description : 获取指定时间对应的6位时间 HHmmss * @return : String * @param : @param date * @param : @return * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String time6(Date date) { return new SimpleDateFormat("HHmmss").format(date); } /* ******************************************** * method name : datetime12 * description : 获取指定时间对应的12位时间 yyyyMMddHHmm * @return : String * @param : @param date * @param : @return * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String datetime12(Date date) { return new SimpleDateFormat("yyyyMMddHHmm").format(date); } /* ******************************************** * method name : datetime14 * description : 获取指定时间对应的14位时间 yyyyMMddHHmmss * @return : String * @param : @return * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String datetime14( ) { return new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); } /* ******************************************** * method name : calcMinute * description : 获取指定时间指定分钟之后的时间 * @return : String yyyyMMddHHmm * @param : @param time12 yyyyMMddHHmm * @param : @param s 指定分钟,可为负 * @param : @return * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String calcMinute(String time12, int s) { Calendar cal = Calendar.getInstance(); cal.set(Integer.parseInt(time12.substring(0, 4)), Integer .parseInt(time12.substring(4, 6)) - 1, Integer.parseInt(time12 .substring(6, 8)), Integer.parseInt(time12.substring(8, 10)), Integer.parseInt(time12.substring(10, 12))); cal.add(Calendar.MINUTE, s); return new SimpleDateFormat("yyyyMMddHHmm").format(cal.getTime()); } /* ******************************************** * method name : getYesterday * description : 获取指定时间前一天的8位日期 yyyyMMdd * @return : String * @param : @param today * @param : @return * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String getYesterday(Date today){ Calendar cal = Calendar.getInstance(); cal.setTime(today); cal.add(Calendar.DAY_OF_YEAR, -1); return new SimpleDateFormat("yyyyMMdd").format(cal.getTime()); } /** * <br>description : 获取当前日期的前几天日期 * @param date8 * @param i * @return * @author xiatian * @version 1.0 * @date Oct 21, 201310:03:05 AM */ /* ******************************************** * method name : calcDay * description : 获取指定日期yyyyMMdd的前几天的8位日期yyyyMMdd * @return : String * @param : @param date8 指定日期 * @param : @param i 前n天 * @param : @return * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String calcDay(String date8,int i){ Calendar cal = Calendar.getInstance(); cal.set(Integer.parseInt(date8.substring(0,4)),Integer.parseInt(date8.substring(4,6))-1, Integer.parseInt(date8.substring(6))); cal.add(Calendar.DAY_OF_YEAR, i); return new SimpleDateFormat("yyyyMMdd").format(cal.getTime()); } /* ******************************************** * method name : getMonthLastDay * description : 获取本月最后一天的8位日期 yyyyMMdd * @return : String * @param : @return * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String getMonthLastDay() { Calendar lastDate = Calendar.getInstance(); lastDate.set(Calendar.DATE, 1);// 设为当前月的1号 lastDate.add(Calendar.MONTH, 1);// 加一个月,变为下月的1号 lastDate.add(Calendar.DATE, -1);// 减去一天,变为当月最后一天 return new SimpleDateFormat("yyyyMMdd").format(lastDate.getTime()); } /* ******************************************** * method name : getNextMonth * description : 得到下一个月的8位日期yyyyMMdd * @return : String * @param : @return * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String getNextMonth() { Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, 1);// 加一个月 return new SimpleDateFormat("yyyyMMdd").format(c.getTime()); } /* ******************************************** * method name : getNextMonth * description : 得到指定日期下一个月的8位日期yyyyMMdd,若没有,则往前推,知道有为止,如20180130,返回20180228 * @return : String * @param : @return * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String getNextMonth(String date8){ Calendar cal = Calendar.getInstance(); cal.set(Integer.parseInt(date8.substring(0,4)),Integer.parseInt(date8.substring(4,6))-1, Integer.parseInt(date8.substring(6))); cal.add(Calendar.MONTH, 1);// 加一个月 return new SimpleDateFormat("yyyyMMdd").format(cal.getTime()); } /* ******************************************** * method name : getPreviousMonthEnd * description : 获取上月最后一天 yyyyMMdd * @return : String * @param : @return * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String getPreviousMonthEnd() { Calendar lastDate = Calendar.getInstance(); lastDate.add(Calendar.MONTH, -1);// 减一个月 lastDate.set(Calendar.DATE, 1);// 把日期设置为当月第一天 lastDate.roll(Calendar.DATE, -1);// 日期回滚一天,也就是本月最后一天 return new SimpleDateFormat("yyyyMMdd").format(lastDate.getTime()); } /* ******************************************** * method name : getTimestamp * description : 将时间转化成时间戳 * @return : String * @param : @param string * @param : @return * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String getTimestamp(String time14) { Date date = null; try { date = new SimpleDateFormat("yyyyMMddHHmmss").parse(time14); } catch (ParseException e) { e.printStackTrace(); } if (date == null) { return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); }else { return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date); } } /* ******************************************** * method name : getTimestamp * description : 获取当前时间的时间戳 * @return : Timestamp * @param : @return * modified : ncc , 2017-12-20 * @see : * ********************************************/ public static Timestamp getTimestamp() { Date date = new Date(); return new Timestamp(date.getTime()); } /* ******************************************** * method name : getWhatDayByDate * description : 获取指定日期为星期几 * @return : String * @param : @param date * @param : @return * @param : @throws Exception * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String getWhatDayByDate(String date) throws Exception { Calendar calendar = Calendar.getInstance(); Date temp = new SimpleDateFormat("yyyyMMdd").parse(date); calendar.setTime(temp); int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1; // System.out.println(date + ":" + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH)); System.out.println(date + ":" + calendar.get(Calendar.WEEK_OF_MONTH)); System.out.println(date + ":" + calendar.get(Calendar.WEEK_OF_YEAR)); return dayOfWeek + ""; } /* ******************************************** * method name : getWeekByDate * description : 获取指定日期yyyyMMdd为当年第几周 * @return : String * @param : @param date * @param : @return * @param : @throws Exception * modified : ncc , 2017-12-19 * @see : * ********************************************/ public static String getWeekByDate(String date8) throws Exception { Calendar calendar = Calendar.getInstance(); calendar.setFirstDayOfWeek(Calendar.MONDAY); Date temp = null; try { temp = new SimpleDateFormat("yyyyMMdd").parse(date8); } catch (ParseException e) { e.printStackTrace(); } if (temp == null) { temp = new Date(); } calendar.setTime(temp); StringBuffer result = new StringBuffer(); int weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR); int year = calendar.get(Calendar.YEAR); if (weekOfYear == 1 && calendar.get(Calendar.MONTH) == 11) { year = year + 1; } result.append(year); if (weekOfYear < 10) { result.append("0"); } result.append(weekOfYear); // System.out.println(date + ",month:" + calendar.get(Calendar.MONTH) + ",week:" + result + ",day:" + (calendar.get(Calendar.DAY_OF_WEEK)-1)); return result.toString(); } /* ******************************************** * method name : getDateString * description : 根据传入的long型时间转换为8位日期 yyyyMMdd * @return : String * @param : @param dt * @param : @return * modified : ncc , 2017-12-20 * @see : * ********************************************/ public static String getDateString(long dt) { SimpleDateFormat fm = new SimpleDateFormat("yyyyMMdd"); return fm.format(new Date(dt)); } /* ******************************************** * method name : getTimeString * description : 根据传入的long型时间转换为6位时间 HHmmss * @return : String * @param : @param dt * @param : @return * modified : ncc , 2017-12-20 * @see : * ********************************************/ public static String getTimeString(long dt) { SimpleDateFormat fm = new SimpleDateFormat("HHmmss"); // "yyyyMMdd G 'at' hh:mm:ss a zzz" return fm.format(new Date(dt)); } /* ******************************************** * method name : getDateTimeString * description : 根据传入的long型时间转换为14位日期时间 yyyyMMddHHmmss * @return : String * @param : @param dt * @param : @return * modified : ncc , 2017-12-20 * @see : * ********************************************/ public static String getDateTimeString(long dt) { SimpleDateFormat fm = new SimpleDateFormat("yyyyMMddHHmmss"); // "yyyyMMdd G 'at' hh:mm:ss a zzz" return fm.format(new Date(dt)); } /* ******************************************** * method name : getSpNextMonth * description : 获取指定时间下个月的时间,若当前为月末则月份加一,日期置为下个月的月末,若当前非月末则月份加一 * @return : long * @param : @param dt * @param : @return * modified : ncc , 2017-12-20 * @see : * ********************************************/ public static long getNextMonth(long dt) { Date d = new Date(dt); Calendar cal = Calendar.getInstance(); cal.setTime(d); int curDay = cal.get(Calendar.DAY_OF_MONTH);// 获取当前日期 int lastDay= cal.getActualMaximum(Calendar.DAY_OF_MONTH);//获取本月月末的日期 if (curDay==lastDay) { // 若当前为月末则月份加一,日期置为下个月的月末 cal.add(Calendar.MONTH,1); lastDay= cal.getActualMaximum(Calendar.DAY_OF_MONTH); cal.set(Calendar.DAY_OF_MONTH,lastDay); } else { //若当前非月末则月份加一 cal.add(Calendar.MONTH,1); } return cal.getTimeInMillis(); } /* ******************************************** * method name : getYear * description : 获取系统年份 * @return : String * @param : @return * modified : ncc , 2017-12-20 * @see : * ********************************************/ public static String getYear() { return new SimpleDateFormat("yyyy").format(new Date()); } private static final String THISCENTRUY = "20"; private static final String LASTCENTRUY = "19"; /* ******************************************** * method name : getYear4ByYear2 * description : 将输入的2位年转换为4位的年,转换规则是: * 假定待转换的年不早于现在100年,即,如果待转换的2位的年大于现在 * 的年份,那么说明它是上个世纪的,否则,认为是本世纪的 * @return : String 如果输入年份不是2位,那么返回null * @param : @param strYear2 2位年 * @param : @return * modified : ncc , 2017-12-20 * @see : * ********************************************/ private String getYear4ByYear2(String strYear2) { String strYear4 = null; if (null != strYear2 && strYear2.matches("\\d{2}")) { Calendar currentCal = Calendar.getInstance(); int Year2 = Integer.parseInt(Integer.toString(currentCal.get(Calendar.YEAR)).substring( 2, 4)); int destYear2 = Integer.parseInt(strYear2); if (destYear2 > Year2) strYear4 = LASTCENTRUY + strYear2; else strYear4 = THISCENTRUY + strYear2; } return strYear4; } public static void main(String[] args) throws ParseException{ System.out.println(getNextMonth("20180130")); } }
相关推荐
《非常强大的Java时间处理工具类——xk-time详解》 在Java编程中,时间处理是一项常见且重要的任务,尤其在处理日历事件、数据分析、定时任务等方面。然而,Java 8之前的日期API设计存在诸多不便,例如线程安全问题...
XK-Time工具类库正是为了解决Java时间处理的不便而诞生的,它是一个基于Java 8 API的,线程安全且功能丰富的工具集合。这个库提供了一系列强大且易用的工具类,使得日期和时间的操作变得更加便捷。 首先,`...
`xk-time`是一个精心设计的工具包,专门针对Java时间处理的各种需求,尤其在Java 8之后,它提供了丰富的功能和线程安全的API。这个工具包的主要目标是解决Java 8之前日期API的不便,以及简化日期操作和提高代码...
5. **java.time.***(Java 8及以上):包括`LocalDate`、`LocalTime`、`LocalDateTime`等,提供了更强大和直观的日期时间处理。 6. **java.io.File**:文件操作类,可以创建、删除、重命名文件,获取文件属性等。 ...
Java时间工具类是Java开发中不可或缺的一部分,它们提供了一系列方便的方法来处理日期和时间,使得开发者可以更加高效地进行时间相关的操作。在这个简单的DateUtil.java工具类中,我们可以期待找到一些基本但实用的...
通常,这样的库会包含一系列针对特定场景的工具类,如日期时间处理、文件操作、字符串格式化、数据校验等。例如,可能会有一个DateTimeUtils类,提供日期和时间的格式化、比较和转换方法;一个FileUtils类,用于文件...
Java工具类集合是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,工具类通常被组织在各种包下,如`java.util`、`java.lang`、`java.io`等。下面将详细介绍...
基本涵盖了各种场景的日期处理需要,包括时间类型转换,获取N天前后,月初月末,某段时间按天拆分等功能,欢迎使用。
在Java编程语言中,日期和时间处理是常见且重要的任务。Java提供了多种工具类来帮助开发者处理日期和时间,使得我们可以方便地进行日期计算、格式化以及解析等操作。本篇将围绕Java中的日期工具类和时间工具类展开...
Java操作时间工具类是开发者日常工作中经常会用到的模块,特别是在处理日期和时间相关的业务逻辑时。本工具类主要是为了方便地对日期和时间进行格式化、比较、计算等操作,提高开发效率。下面我们将详细探讨Java中...
数据处理工具类往往涉及集合操作。Java的util包包含了多种集合框架类,如List、Set、Map等。Collections类提供了对这些集合进行操作的方法,如sort、reverse、copy等。此外,Arrays类可以用于排序和填充数组,包括...
本篇文章将深入探讨如何在Java中实现一个用于处理HTTPS请求的工具类。 首先,要实现HTTPS请求,我们需要导入Java的`java.net`和`javax.net.ssl`包,这两个包提供了处理网络连接和SSL/TLS安全协议的类。以下是一些...
此外,这份资料可能还包含其他类型的工具类,如Bitmap处理工具类,用于图片的加载、缩放和优化;Date工具类,用于日期和时间的格式化和转换;Dialog工具类,提供自定义对话框的快速创建;还有可能包括Utils类,其中...
在Java编程中,这样的工具类通常包含了一系列方法,用于发送、接收和处理短信。下面我们将详细探讨Java短信服务工具类的关键知识点。 1. **SMS协议理解**: 短信服务通常基于GSM 03.40或3GPP TS 23.040标准,这些...
包含"yyyy-MM-dd"、"yyyy-MM-dd HH:mm:ss"、"yyyyMMdd"、"yyyyMMddHHmmss"、"yyyy-MM"、"yyyyMM"等时间格式的转换。 其中: 1.String转Timestamp stringToTimestamp(String dateStr); 2.比较传入时间与当前时间前一...
java 时间处理工具类,包含时间截取、转换,固定格式时间转换
在Java编程中,工具类(Util Class)是包含各种静态方法的类,这些方法通常用于执行常见的、重复的任务,如字符串处理、数学计算或者集合操作等。这些类不包含任何状态,即没有实例变量,因此它们是线程安全的。在...
本文将详细解析"java开发常用工具类"中的关键知识点,包括日历、时间处理、Excel导出、网络请求、流操作、数据处理、数值计算以及XML和Web工具类。 1. **日历和时间处理**: Java中`java.util.Calendar`和`java....
Java日常处理工具类是开发过程中不可或缺的部分,它们通常包含了各种常用功能的静态方法,能够极大地提高开发效率,减少代码重复。Part1中的"java日常处理工具类part1-代码"很可能是对Java基础工具类的一个初步介绍...
在Java编程语言中,工具类(Utility Class)是包含各种静态方法的类,这些方法用于执行特定任务,如数据处理、格式化、计算等。Java提供了丰富的内置工具类,但开发者也经常创建自定义工具类以满足项目需求。标题...