import java.sql.Timestamp; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Locale; import org.apache.commons.lang.StringUtils; /** * 日期工具类 * * @author yugc */ public final class DateUtil { private DateUtil() { } /** * yyyy-MM-dd */ public static final String FORMAT1 = "yyyy-MM-dd"; /** * yyyy.MM.dd */ public static final String FORMAT2 = "yyyy.MM.dd"; /** * yyyy/MM/dd */ public static final String FORMAT3 = "yyyy/MM/dd"; /** * yyyy-MM-dd HH:mm */ public static final String FORMAT4 = "yyyy-MM-dd HH:mm"; /** * yyyy.MM.dd HH:mm */ public static final String FORMAT5 = "yyyy.MM.dd HH:mm"; /** * yyyy/MM/dd HH:mm */ public static final String FORMAT6 = "yyyy/MM/dd HH:mm"; /** * yyyy-MM-dd HH:mm:ss */ public static final String FORMAT7 = "yyyy-MM-dd HH:mm:ss"; /** * YYYY-MM-dd HH-mm-ss */ public static final String FORMAT15 = "YYYY-MM-dd HH-mm-ss"; /** * yyyy.MM.dd HH:mm:ss */ public static final String FORMAT8 = "yyyy.MM.dd HH:mm:ss"; /** * yyyy/MM/dd HH:mm:ss */ public static final String FORMAT9 = "yyyy/MM/dd HH:mm:ss"; /** * yyyy_MM_dd_HH_mm_ss */ public static final String FORMAT10 = "yyyy_MM_dd_HH_mm_ss"; /** * yy-MM-dd */ public static final String FORMAT11 = "yy-MM-dd"; /** * yyyyMMdd */ public static final String FORMAT12 = "yyyyMMdd"; /** * yyyyMMddHHmmss */ public static final String FORMAT13 = "yyyyMMddHHmmss"; /** * yyyyMM */ public static final String FORMAT14 = "yyyyMM"; public static Date getCurrentDate() { return new Date(System.currentTimeMillis()); } public static Date getYesterDay() { return addDay(new Date(System.currentTimeMillis()), -1); } public static String getYesterDayString() { return parseDateToString(addDay(new Date(System.currentTimeMillis()), -1), FORMAT1); } /** * 得到年月日的路径 * @return */ public static String getThisYearMonthDay(String dateString) { Date date = parseStringToDate(dateString, FORMAT12); return DateUtil.getYear(date) + "/" + DateUtil.getMonth(date) + "/" + DateUtil.getDay(date) + "/"; } /** * 返回当前日期或时间 * * @param format * @return */ public static String getCurrentDate(String format) { if (StringUtils.isBlank(format)) { format = FORMAT1; } Date date = new Date(); SimpleDateFormat formatter = new SimpleDateFormat(format); String currentTime = formatter.format(date); return currentTime; } /** * 返回当前时间 * * @return */ public static String getCurrentTime() { String datetime = getCurrentDate(FORMAT7); String time = datetime.substring(datetime.indexOf(" ") + 1); return time; } /** * 返回当前时间加随机数 * * @return */ public static String getCurrentDateTimeRandom() { String datetime = getCurrentDate(DateUtil.FORMAT10) + "_" + Math.random(); return datetime; } /** * 返回当前时间和日期 * @return */ public static String getCurrentDateTimeString() { return getCurrentDate(DateUtil.FORMAT7); } /** * 返回当前日期 * * @return */ public static Date getCurrentDateTime() { String datetime = getCurrentDate(FORMAT7); return parseStringToDate(datetime, ""); } public static Timestamp getCurrentTimestamp() { String datetime = getCurrentDate(FORMAT7); return parseStringToTimestamp(datetime, ""); } public static Timestamp getCurrentTimestamp(String format) { String datetime = getCurrentDate(format); return parseStringToTimestamp(datetime, ""); } /** * 日期转换为字符串 * * @param date 日期 * @param format 格式 * @return 返回字符型日期 */ public static String parseDateToString(Date date, String format) { String result = ""; DateFormat formatter = null; try { if (date != null) { if (StringUtils.isBlank(format)) { formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); } else { formatter = new SimpleDateFormat(format); } result = formatter.format(date); } } catch (Exception e) { } return result; } /** * 时间1-时间2的毫秒 * * @param t1 * @param t2 * @return */ public static long between(Timestamp t1, Timestamp t2) { if ((t1 != null) && (t2 != null)) { return t1.getTime() - t2.getTime(); } return 0; } /** * 两个日期date1-date2相减,相差的天数 * * @param date1 * 日期 * @param date2 * 日期 * @return 返回相减后的日期 */ public static int betweenTwoDates(Date date1, Date date2) { return (int) ((getMillis(date1) - getMillis(date2)) / (24 * 3600 * 1000)); } /** * 将字符串转换为日期 * * @param str * @return * @throws ParseException */ public static Date parseStringToDate(String str, String format) { DateFormat formatter = null; Date date = null; if (StringUtils.isNotBlank(str)) { if (StringUtils.isBlank(format)) { formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); } else { formatter = new SimpleDateFormat(format); } try { date = formatter.parse(str); } catch (ParseException e) { e.printStackTrace(); } } return date; } /** * 返回2007到今年的年份 * * @return */ public static List<Integer> get2007ToThisYear() { // 当前时间 Calendar c = Calendar.getInstance(); c.setTime(new Date()); // 返回的年份 List<Integer> the2007ToThisYearList = new ArrayList<Integer>(); // 当前年 int thisYear = c.get(Calendar.YEAR); for (int i = thisYear; i >= 2007; i--) { the2007ToThisYearList.add(i); } return the2007ToThisYearList; } /** * 获取当前月的前几个月份的时间 * @param months * @return */ public static Date getDateBeforeMonths(int months) { // 当前时间 Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, -months); return c.getTime(); } /** * 获取当前日期的前几天的时间 * @param days * @return */ public static Date getDateBeforeDays(int days) { // 当前时间 Calendar c = Calendar.getInstance(); c.add(Calendar.DATE, -days); return c.getTime(); } /** * 返回1-12月份 * * @return */ public static List<String> getAllMonth() { List<String> theMonthList = new ArrayList<String>(); for (int i = 1; i < 13; i++) { if (i < 10) { theMonthList.add("0" + i); } else { theMonthList.add("" + i); } } return theMonthList; } /** * 返回日期中的年份 * * @param date * 日期 * @return 返回年份 */ public static int getYear(Date date) { Calendar c = Calendar.getInstance(); c.setTime(date); return c.get(Calendar.YEAR); } /** * 返回日期中的月份 * * @param date * 日期 * @return 返回月份 */ public static int getMonth(Date date) { Calendar c = Calendar.getInstance(); c.setTime(date); return c.get(Calendar.MONTH) + 1; } /** * 返回日期中的日 * * @param date * 日期 * @return 返回日 */ public static int getDay(Date date) { Calendar c = Calendar.getInstance(); c.setTime(date); return c.get(Calendar.DAY_OF_MONTH); } /** * 返回日期中的小时 * * @param date * 日期 * @return 返回小时 */ public static int getHour(Date date) { Calendar c = Calendar.getInstance(); c.setTime(date); return c.get(Calendar.HOUR_OF_DAY); } /** * 返回日期中的分钟 * * @param date * 日期 * @return 返回分钟 */ public static int getMinute(Date date) { Calendar c = Calendar.getInstance(); c.setTime(date); return c.get(Calendar.MINUTE); } /** * 返回日期中的秒钟 * * @param date * 日期 * @return 返回秒钟 */ public static int getSecond(Date date) { Calendar c = Calendar.getInstance(); c.setTime(date); return c.get(Calendar.SECOND); } /** * 返回日期代表的毫秒 * * @param date * 日期 * @return 返回毫秒 */ public static long getMillis(Date date) { Calendar c = Calendar.getInstance(); c.setTime(date); return c.getTimeInMillis(); } /** * 返回当前日期代表的毫秒 * * @return */ public static long getCurrentTimeMillis() { return System.currentTimeMillis(); } public static Date addMonth(Date date, int month) { Calendar c = Calendar.getInstance(); c.setTime(date); c.add(c.MONTH, month); return c.getTime(); }
相关推荐
"Java范例开发大全代码" 提供了丰富的实例,帮助开发者深入理解和掌握Java的各项技术。这个压缩包很可能是包含了一系列Java编程的示例代码,旨在帮助初学者和经验丰富的程序员在实践中学习和提升。 首先,让我们...
《Java范例开发大全》是一本深度探讨Java编程实践的书籍,其提供的全书源代码压缩包涵盖了370多个实例,旨在帮助开发者全面理解并掌握Java语言的应用。这些实例覆盖了Java语言的基础到高级特性,是学习和提升Java...
在Java编程语言中,我们可以看到两个不同的实验,分别涉及到线程和图形用户界面(GUI)的应用。下面将详细解释这两个实验...这两个实验展示了Java语言在实际应用中的不同方面,包括多线程、日期时间处理以及GUI编程。
- 学习并理解Java基础库,如集合框架、IO流、日期时间API(java.time包)、反射机制、注解等。 - 探索Java并发包(java.util.concurrent),理解线程池、并发工具类如Semaphore、CountDownLatch等。 - 熟悉JDBC ...
代码范例列表 第1章 示例描述:本章演示如何开始使用JDK进行程序的开发。 HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载...
此外,Java标准库(Java API)包含了大量的预先编写好的类和接口,如日期时间API、线程处理、网络编程等,这些都应成为学习者探索的目标。随着Java版本的更新,如Java 8引入的Lambda表达式和Stream API,以及Java 11...
JAVA 范例大全 光盘 资源 书籍目录: 前言. 第1章 开发环境搭建 1 实例1 下载、安装并配置JDK 1 实例2 第一个Java程序 3 实例3 在Eclipse中创建第一个Java程序 4 常见问题 javac不是内部或者外部命令 6 常见...
《Java范例开发大全》是一本详尽的Java编程实践指南,涵盖了从基础语法到高级特性的各种示例。这本书通过377个精心设计的实例,旨在帮助读者深入理解和掌握Java编程技术。 1. **基础语法**:书中首先介绍了如何开发...
Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择 Java语言开发的简洁实用的日期选择控件,源码文件功能说明: [DateChooser.java] Java 日期选择控件(主体类) [public] ...
《Java范例开发大全》是一本面向初学者和进阶者的学习资料,涵盖了广泛的Java编程实践。这本书通过377个实例,详细讲解了Java语言的基础知识和常见操作,旨在帮助读者深入理解Java编程概念并提升编程技能。以下是...
最后,Java还提供了丰富的标准库,如Math类用于数学运算,Date和Calendar类处理日期和时间,Thread类支持多线程编程,等等。熟练掌握这些库将极大地提升开发效率。 总的来说,“JAVA语言与其程序设计范例”涵盖了从...
10. **Java标准库**:Java标准库(JDK)提供了大量实用类和方法,如日期时间API、字符串处理、数学计算等。范例会涵盖这些API的典型应用。 通过深入研究和实践这些Java通用范例,开发者不仅能提升编程技能,还能...
10. **标准库和API**:Java的标准库提供了大量预定义的类和方法,如日期时间API、网络编程API、XML处理等,熟悉这些API能极大地提高开发效率。 通过对这些知识点的学习和实践,开发者不仅能掌握Java的基础开发技巧...
- **Java.util**:包含各种实用工具类,如日期时间处理、集合操作、并发工具等。 - **Java.lang**:核心语言包,提供基本类型、对象类、字符串类等。 - **Java.nio**:非阻塞I/O,提供了更高效的文件和网络数据...
Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择 Java语言开发的简洁实用的日期选择控件,源码文件功能说明: [DateChooser.java] Java 日期选择控件(主体类) [public] ...
Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择 Java语言开发的简洁实用的日期选择控件,源码文件功能说明: [DateChooser.java] Java 日期选择控件(主体类) [public] ...