package main; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateUtils { /** * Number of milliseconds in a standard second. */ public static final long MILLIS_PER_SECOND = 1000;// 一秒钟的毫秒数 /** * Number of milliseconds in a standard minute. */ public static final long MILLIS_PER_MINUTE = 60 * MILLIS_PER_SECOND;// 一分钟的毫秒数 /** * Number of milliseconds in a standard hour. */ public static final long MILLIS_PER_HOUR = 60 * MILLIS_PER_MINUTE;// 一小时的毫秒数 /** * Number of milliseconds in a standard day. */ public static final long MILLIS_PER_DAY = 24 * MILLIS_PER_HOUR;// 一天的毫秒数 /** * ISO8601 date format: yyyy-MM-dd */ public static final String DATE_FORMAT_PATTERN = "yyyy-MM-dd"; /** * ISO8601 date-time format: yyyy-MM-dd HH:mm:ss */ public static String DATETIME_FORMAT_PATTERN = "yyyy-MM-dd HH:mm:ss"; private DateUtils() { } public static String fillZero(String str, int fillSize) { if (null != str) { int beforeSize = str.length(); if(str.length() < fillSize) { int afterSize = fillSize-beforeSize; for(int i=0; i<afterSize; i++) { str = "0"+str; } } } return str; } /** * 获得系统时间yyyy-MM-dd HH:mm:ss格式 * * @return */ public static String getSystime() { Calendar todaysDate = new GregorianCalendar(); int year = todaysDate.get(Calendar.YEAR); int month = todaysDate.get(Calendar.MONTH) + 1; int day = todaysDate.get(Calendar.DAY_OF_MONTH); int hourOfDay = todaysDate.get(Calendar.HOUR_OF_DAY);//24小时制 // int hour = todaysDate.get(Calendar.HOUR); //12小时制 int minute = todaysDate.get(Calendar.MINUTE); int second = todaysDate.get(Calendar.SECOND); return year + "/" + month + "/" + day + " " + hourOfDay + ":" + fillZero(minute+"", 2) + ":" + fillZero(second+"", 2); } /** * 获得当前时间yyyy-MM-dd HH:mm:ss格式 * @return */ public static String getCurrentDateAsString() { SimpleDateFormat formatter = new SimpleDateFormat(DATETIME_FORMAT_PATTERN); return formatter.format(new Date()); } /** * 获得当前日期yyyy-MM-dd HH:mm:ss格式 * @return */ public static Date getCurrentDate() { return parseToDate(getCurrentDateAsString(), DATETIME_FORMAT_PATTERN); } /** * 将日期字符串转换为指定的日期格式 * * @param str 日期字符串 * @param pattern 日期格式 * @return */ public static Date parseToDate(String str, String pattern) { DateFormat parser = new SimpleDateFormat(pattern); try { return parser.parse(str); } catch (ParseException e) { throw new IllegalArgumentException("Can't parse " + str + " using " + pattern); } } /** * 将yyyy-MM-dd HH:mm:ss格式字符串转成Date * @param str * @return */ public static Date parseToDate(String str) { return parseToDate(str, DATETIME_FORMAT_PATTERN); } /** * 比较两个时间数相差多少分钟 * @param begin * @param end * @return */ public static long getDiff(Date begin, Date end) { long diff = end.getTime() - begin.getTime(); diff = Math.abs(diff); long day = diff / MILLIS_PER_DAY;// 计算差多少天 long hour = diff % MILLIS_PER_DAY / MILLIS_PER_HOUR;// 计算差多少小时 long min = diff % MILLIS_PER_DAY % MILLIS_PER_HOUR / MILLIS_PER_MINUTE;// 计算差多少分钟 long sec = diff % MILLIS_PER_DAY % MILLIS_PER_HOUR % MILLIS_PER_MINUTE / MILLIS_PER_SECOND;// 计算差多少秒 System.out.println("时间相差:" + day + "天" + hour + "小时" + min + "分钟" + sec + "秒。"); return min; } /** * 获得指定日期的前一天 * * @param specifiedDay yy-MM-dd * @return * @throws Exception */ public static String getBeforeDay(String specifiedDay) { Calendar c = Calendar.getInstance(); Date date = null; try { date = new SimpleDateFormat(DATE_FORMAT_PATTERN).parse(specifiedDay); } catch (ParseException e) { e.printStackTrace(); } c.setTime(date); int day = c.get(Calendar.DATE); c.set(Calendar.DATE, day - 1); String dayBefore = new SimpleDateFormat(DATE_FORMAT_PATTERN).format(c.getTime()); return dayBefore; } /** * 获得指定日期的后一天 * * @param specifiedDay yy-MM-dd * @return */ public static String getAfterDay(String specifiedDay) { Calendar c = Calendar.getInstance(); Date date = null; try { date = new SimpleDateFormat(DATE_FORMAT_PATTERN).parse(specifiedDay); } catch (ParseException e) { e.printStackTrace(); } c.setTime(date); int day = c.get(Calendar.DATE); c.set(Calendar.DATE, day + 1); String dayAfter = new SimpleDateFormat(DATE_FORMAT_PATTERN).format(c.getTime()); return dayAfter; } /** * 获得一个月的最后一天 * @param date null|当天 * @return Date */ public static Date getLastDayOfMonth(Date date) { // 获取Calendar Calendar calendar = Calendar.getInstance(); // 设置时间,当前时间不用设置(NULL当天) if(date != null) calendar.setTime(date); calendar.set(Calendar.DATE, calendar.getMaximum(Calendar.DATE)); DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(format.format(calendar.getTime())); return calendar.getTime(); } /** * 计算两个日期之间相差的天数 * @param d1 较小的时间 * @param d2 较大的时间 * @return 相差天数 * @throws ParseException */ public static int daysBetween(Date d1, Date d2) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); d1 = sdf.parse(sdf.format(d1)); d2 = sdf.parse(sdf.format(d2)); Calendar cal = Calendar.getInstance(); cal.setTime(d1); long time1 = cal.getTimeInMillis(); cal.setTime(d2); long time2 = cal.getTimeInMillis(); long betweenDays = (time2 - time1) / (1000 * 3600 * 24); return Integer.parseInt(String.valueOf(betweenDays)); } /** * 获得两个时间之间隔的天数 * * @return */ public static int daysBetween(String d1, String d2) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); cal.setTime(sdf.parse(d1)); long time1 = cal.getTimeInMillis(); cal.setTime(sdf.parse(d2)); long time2 = cal.getTimeInMillis(); long betweenDays = (time2 - time1) / (1000 * 3600 * 24); return Integer.parseInt(String.valueOf(betweenDays)); } /** * 计算两个日期之间相差的月数 * * @param date1 * @param date2 * @return */ public static int getMonth(Date date1, Date date2) { int iMonth = 0; int flag = 0; try { Calendar cal1 = Calendar.getInstance(); cal1.setTime(date1); Calendar cal2 = Calendar.getInstance(); cal2.setTime(date2); if (cal2.equals(cal1)) return 0; if (cal1.after(cal2)) { Calendar temp = cal1; cal1 = cal2; cal2 = temp; } if (cal2.get(Calendar.DAY_OF_MONTH) < cal1.get(Calendar.DAY_OF_MONTH)) flag = 1; if (cal2.get(Calendar.YEAR) > cal1.get(Calendar.YEAR)) iMonth = ((cal2.get(Calendar.YEAR) - cal1.get(Calendar.YEAR)) * 12 + cal2.get(Calendar.MONTH) - flag) - cal1.get(Calendar.MONTH); else iMonth = cal2.get(Calendar.MONTH) - cal1.get(Calendar.MONTH) - flag; } catch (Exception e) { e.printStackTrace(); } return iMonth; } }
相关推荐
根据给定的文件信息,以下是对Java日期类函数方法的详细整理与解释: ### Java日期类函数方法概览 在Java中,处理日期和时间主要依赖于`java.util.Date`、`java.text.SimpleDateFormat`、`java.sql.Date`、`java....
在Java编程语言中,日期和时间的处理是常见的任务,涉及到很多实用的函数。本篇文章将深入探讨如何在Java中进行日期时间的操作,主要基于标题和描述中提及的知识点。 首先,Java提供了一个内置的`java.util.Date`类...
在Java编程中,工具类(Util Class)是包含各种实用函数的静态类,它们提供了一种简化常见任务的方法。在给定的`UtilClass`中,我们有五个主要的工具类:`StringUtil`、`FileUtil`、`ConnectDB`、`DateUtil`和`...
在Java中,Util类通常包含了各种通用功能,如集合操作、日期时间处理、字符串处理等。以下是一些Java中常用的Util类及其重要知识点的详细说明: 1. **ArrayList和LinkedList**: 这两个都是`java.util`包下的List...
在Java中,我们可以使用`java.util.Date`、`java.time.LocalDate`或`java.time.LocalDateTime`等类来处理日期。可能的方法有获取当前日期、日期比较、日期格式化(如`SimpleDateFormat`或`DateTimeFormatter`)等。 ...
在Java编程语言中,`util`包是Java标准库中的一个核心部分,包含了大量实用工具类,极大地丰富了开发者的代码库。这个包下有很多重要的类,如ArrayList、HashMap、LinkedList、Date、Calendar等,它们提供了许多常用...
本文将深入探讨`java.util.Date`类以及与其相关的日期格式化函数的使用方法,并通过实例进行详细解析。 首先,我们了解`java.util.Date`是Java中的一个核心类,它用于表示特定的瞬间,精确到毫秒。获取系统当前时间...
综上所述,"java日期和查询数据库生成XML文件类"涉及到的开发工作主要包括处理日期和时间、数据库操作以及XML的生成。理解并熟练掌握这些概念和API对于开发涉及数据交换和持久化的Java应用至关重要。通过调整和定制...
1. **构造函数**:`DateJsonValueProcessor`类有两个构造函数,一个无参,另一个接受日期格式字符串作为参数。 ```java public DateJsonValueProcessor() {} public DateJsonValueProcessor(String format) { ...
Java日期操作函数详解 ...Java日期操作函数可以帮助开发者快速获取和处理日期相关的信息,提高开发效率和质量。本文讨论的函数只是Java日期操作函数的一部分,开发者需要根据实际情况选择合适的函数来实现日期操作。
`Date`和`Calendar`是处理日期和时间的类,但在Java 8之后,`java.time`包的`LocalDate`、`LocalTime`、`LocalDateTime`等类更推荐使用,它们提供了更加直观和灵活的时间操作。 `Random`类用于生成随机数,可以生成...
`java.util`包作为Java标准库中的一个重要组成部分,提供了大量的实用工具类和接口,旨在简化开发者在处理数据结构、日期时间、事件处理等方面的工作。这个包包含了如日期类(Date)、日历类(Calendar)、随机数生成器...
Java 8之前,主要使用`java.util.Date`, `java.util.Calendar`以及`SimpleDateFormat`类来处理日期。然而,这些API被普遍认为设计复杂且易出错。从Java 8开始,引入了新的日期时间API,`java.time`包,包括以下核心...
以上就是基于给定文件信息整理出的Java日期处理相关知识点,包括如何获取当前时间、不同格式的时间转换以及在JavaScript中获取当前时间等。这些知识点是Java编程中处理日期时间的基础,对于从事软件开发的人来说非常...
6. **日期与时间API**:Java 8对日期和时间API进行了重构,提供了`java.time`包,包含`LocalDate`, `LocalTime`, `LocalDateTime`等类,比旧的`java.util.Date`和`Calendar`更易于使用。 7. **并行流**:Stream API...
Java提供了多种工具类来帮助开发者进行日期时间的操作,其中最常用的是`java.util.Date`、`java.util.Calendar`以及`java.time`包中的类。本篇将重点介绍Java操作日期时间的工具类,特别是通过`DateUtil.java`这个...
在Java中,处理日期的类主要分为以下几个部分:java.util.Date类、java.util.Calendar类、java.util.GregorianCalendar类、java.text.DateFormat类和java.text.SimpleDateFormat类。 首先,java.util.Date类是Java...
Java Util大全是一个集合了多种实用工具类的压缩包,涵盖了Java开发中常见的各种操作,如加密解密、日期时间处理、HTTP请求、JSON解析、文件服务器整合等。这些工具类在实际开发中起到了非常关键的作用,能提高代码...
此外,Java 5.0的API还包括了对并发编程的改进,如`java.util.concurrent`包中的线程池、同步器(如CyclicBarrier和Semaphore)等工具,以及新的日期时间API(java.util.Calendar和java.util.Date的替代者,如java....
Java标准库提供了两个重要的日期类:`java.util.Date` 和 `java.sql.Date`。虽然它们名字相似,但在实际应用中有着不同的用途和特性。`java.util.Date` 主要用于表示具体的瞬间,而 `java.sql.Date` 专门用于SQL语句...