package com.pdt.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; /** * 日期工具类 * 默认使用 "yyyy-MM-dd HH:mm:ss" 格式化日期 * @author EwinLive * @version1.0 */ public class DateUtils { /** * 英文简写(默认)如:2010-12-01 */ public static String FORMAT_SHORT = "yyyy-MM-dd"; /** * 英文全称 如:2010-12-01 23:15:06 */ public static String FORMAT_LONG = "yyyy-MM-dd HH:mm:ss"; /** * 精确到毫秒的完整时间 如:yyyy-MM-dd HH:mm:ss.S */ public static String FORMAT_FULL = "yyyy-MM-dd HH:mm:ss.S"; /** * 中文简写 如:2010年12月01日 */ public static String FORMAT_SHORT_CN = "yyyy年MM月dd"; /** * 中文全称 如:2010年12月01日 23时15分06秒 */ public static String FORMAT_LONG_CN = "yyyy年MM月dd日 HH时mm分ss秒"; /** * 精确到毫秒的完整中文时间 */ public static String FORMAT_FULL_CN = "yyyy年MM月dd日 HH时mm分ss秒SSS毫秒"; /** * 获得默认的 date pattern */ public static String getDatePattern() { return FORMAT_LONG; } /** * 根据预设格式返回当前日期 * @return */ public static String getNow() { return format(new Date()); } /** * 根据用户格式返回当前日期 * @param format * @return */ public static String getNow(String format) { return format(new Date(), format); } /** * 使用预设格式格式化日期 * @param date * @return */ public static String format(Date date) { return format(date, getDatePattern()); } /** * 使用用户格式格式化日期 * @param date 日期 * @param pattern 日期格式 * @return */ public static String format(Date date, String pattern) { String returnValue = ""; if (date != null) { SimpleDateFormat df = new SimpleDateFormat(pattern); returnValue = df.format(date); } return (returnValue); } /** * 使用预设格式提取字符串日期 * @param strDate 日期字符串 * @return */ public static Date parse(String strDate) { return parse(strDate, getDatePattern()); } /** * 使用用户格式提取字符串日期 * @param strDate 日期字符串 * @param pattern 日期格式 * @return */ public static Date parse(String strDate, String pattern) { SimpleDateFormat df = new SimpleDateFormat(pattern); try { return df.parse(strDate); } catch (ParseException e) { e.printStackTrace(); return null; } } /** * 使用用户格式提取字符串日期 * @param strDate 日期字符串 * @param pattern 日期格式 * @return */ public static String parseDate(String strDate, String pattern) { SimpleDateFormat df = new SimpleDateFormat(pattern); try { return df.format(df.parse(strDate)); } catch (ParseException e) { e.printStackTrace(); return null; } } /** * 在日期上增加数个整月 * @param date 日期 * @param n 要增加的月数 * @return */ public static Date addMonth(Date date, int n) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.MONTH, n); return cal.getTime(); } /** * 在日期上增加天数 * @param date 日期 * @param n 要增加的天数 * @return */ public static Date addDay(Date date, int n) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.DATE, n); return cal.getTime(); } /** * 获取时间戳 */ public static String getTimeString() { SimpleDateFormat df = new SimpleDateFormat(FORMAT_FULL); Calendar calendar = Calendar.getInstance(); return df.format(calendar.getTime()); } /** * 获取日期年份 * @param date 日期 * @return */ public static String getYear(Date date) { return format(date).substring(0, 4); } /** * 按默认格式的字符串距离今天的天数 * @param date 日期字符串 * @return */ public static int countDays (String date) { long t = Calendar.getInstance().getTime().getTime(); Calendar c = Calendar.getInstance(); c.setTime(parse(date)); long t1 = c.getTime().getTime(); return (int)(t/1000 - t1/1000)/3600/24; } /** * 按用户格式字符串距离今天的天数 * @param date 日期字符串 * @param format 日期格式 * @return */ public static int countDays (String date, String format) { long t = Calendar.getInstance().getTime().getTime(); Calendar c = Calendar.getInstance(); c.setTime(parse(date, format)); long t1 = c.getTime().getTime(); return (int)(t/1000 - t1/1000)/3600/24; } /** * 给出一个时间,得到小时 */ public static int getHourByDate(String currentDate) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date current = format.parse(currentDate); return current.getHours(); } catch (ParseException e) { e.printStackTrace(); System.out.println("得到小时数出错!"); return 0; } } /** * 得到当前月份 * @return */ public static int getCurMonth(){ Calendar ca = Calendar.getInstance(); int month = ca.get(Calendar.MONTH); return month+1; } /** * 通过毫秒数转换为时间 * @return */ public static String getDateTileByMillos(long modifiedTime){ Date d = new Date(modifiedTime); String strtile = format(d); return strtile; } /** * 得到当前年份 */ public static String getCurrentYear() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); String currYear = sdf.format(new Date()); return currYear; } /** * 得到当前月的日列表 * @param month * @return */ public static List<String> getMonthList(int month) { int year = 0; int day = 0; Calendar c = Calendar.getInstance();// 获得系统当前日期 year = c.get(Calendar.YEAR); if (month < 1) { month = c.get(Calendar.MONTH) + 1;// 系统日期从0开始算起 } day = c.get(Calendar.DAY_OF_MONTH); c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, day - 1);// Java月份才0开始算 int dateOfMonth = c.getActualMaximum(Calendar.DATE); System.out.println("当前年:" + year + " 当前月:" + month + " 当前天" + day); List<String> monthList = new ArrayList<String>(); for (int i = 1; i <= dateOfMonth; i++) { System.out.println(year + "年" + month + "月" + i + "日"); monthList.add(year + "年" + month + "月" + i + "日"); } return monthList; } /** * 得到当前月初日期 * @param datae * @return */ public static String getYueChu() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-DD"); String datae = sdf.format(new Date()); String[] strs = datae.split("-"); String newstr = strs[0] + "-" + (Integer.parseInt(strs[1])) + "-"+ "01"; return newstr; } /** * 得到当前月月末 * * @param datae * @return */ public static String getYueMo(String datae) { String[] strs = datae.split("-"); String newstr = strs[0] + "-" + strs[1] + "-" + "30"; return newstr; } /** * 根据生日计算年龄 */ public static long getAgeByBirthDay(String birthDay) { long year = 0; try { Date date = new Date(); Date mydate = parse(birthDay, "yyyy-MM-dd"); long day = (date.getTime() - mydate.getTime())/ (24 * 60 * 60 * 1000) + 1; year = day / 365; } catch (Exception e) { year = 0; } return year; } /** * 传入一个时间判断是否与当前时间相等 */ public static boolean JudgeTimeEquals(String time){ SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); String curTime = sdf.format(new Date()); //System.out.println("当前时间是:"+curTime+" 对比时间:"+time); if(curTime.equals(time)){ return true; }else{ return false; } } }
相关推荐
Java中的日期和时间处理是程序开发中常见的任务,涉及到各种日期和时间的计算、格式化以及比较等操作。在Java中,主要使用`java.util.Date`、`java.util.Calendar`和`java.text.SimpleDateFormat`这三个核心类来处理...
本文详细介绍了如何使用Java处理日期合并的问题,通过对`TimeoffDateDTO`类的定义和日期合并算法的具体实现,提供了一种有效的方法来解决实际工作中经常遇到的时间段重叠问题。这种方法不仅适用于员工请假时间的管理...
在Java编程中,日期处理是一项常见的任务,涉及到各种日期和时间的操作。以下是一些关于Java日期处理的关键知识点,这些知识点在给定的文件中有所提及: 1. **获取当前日期**: Java通过`java.util.Date`类可以...
通过以上分析可以看出,示例代码涵盖了 Java 日期处理的基本功能,包括日期格式的定义、日期与字符串之间的转换以及对日期进行操作的方法。这些知识点对于开发人员来说是非常实用的,能够帮助他们在实际项目中高效地...
Java中的日期处理涉及到多个类,包括Date、Calendar、GregorianCalendar以及日期格式化类如DateFormat和SimpleDateFormat。这些类主要用于管理、操作和格式化日期和时间。以下是对这些类的详细说明: 1. **Date类**...
### Java日期处理方法 在Java开发中,对日期与时间的操作是极其常见且重要的一个环节。无论是处理用户的出生年月日、注册日期还是订单的创建时间等,都需要使用到Java提供的日期类进行处理。本文将深入探讨Java中的...
根据给定的文件信息,以下是对Java日期类函数方法的详细整理与解释: ### Java日期类函数方法概览 在Java中,处理日期和时间主要依赖于`java.util.Date`、`java.text.SimpleDateFormat`、`java.sql.Date`、`java....
本文将重点讲解Java日期的常用操作方法,主要基于提供的`JavaDateUtil.java`文件,假设这是一个自定义的日期工具类。 首先,我们来了解`java.util.Date`。这个类在早期的Java版本中被广泛使用,但它的API设计并不...
在实际开发中,这三个类常常结合使用,以满足各种复杂的日期处理需求。例如,我们可以先用`Date`获取当前时间,然后用`Calendar`对其进行操作(如添加、减去日期),最后用`DateFormat`将其格式化为用户友好的字符串...
Java编程语言在处理日期和时间时,虽然内建了`java.util.Date`和`java.util.Calendar`类,但它们的使用并不总是那么直观和高效。为了解决这个问题,社区开发了Joda-Time库,它提供了更为强大且易用的日期时间操作...
在Java编程中,日期控件(Date Picker)是用于用户选择日期的一种常见UI元素,它在各种应用程序中都有着广泛的应用,比如数据输入表单、日历应用等。本篇文章将详细探讨如何在Java中实现一个实用的日期控件,特别...
2. **`java.time.LocalDate`**:用于处理不含时间信息的日期,如出生日期。它的方法包括获取年份、月份、日等,还有诸如`plusDays()`、`minusMonths()`等用于日期的加减操作。 3. **`java.time.LocalDateTime`**:...
### Java日期格式转换详解 在Java开发中,对日期和时间进行操作是非常常见的需求之一。本文将基于给定文件中的代码示例,详细介绍如何在Java中实现日期格式的转换,并探讨其中涉及的关键知识点。 #### 一、理解...
"JAVA日期控件"通常指的是Java Web应用程序中用于处理日期和时间输入的组件。这里我们将详细讨论如何在Java Web项目中实现一个前台时间控件,以提高用户体验。 首先,我们需要理解Java中的日期时间API。在Java 8...
在 Java 中,日期类是用于处理日期和时间的类,包括 java.util.Date、java.sql.Date、java.time.LocalDate、java.time.LocalDateTime 等。这些类提供了对日期和时间的操作和处理,例如获取当前日期、计算日期差、...
总结来说,Java Swing的DatePicker组件通过第三方库提供了一个方便的方式来处理日期选择,它可以极大地提升用户体验。开发者需要了解如何导入和使用这个库,创建DatePicker实例,定制其外观和行为,并将其集成到GUI...
其中,HSSF和XSSF分别用于处理`.xls`和`.xlsx`文件。 ##### 2. 自动判断单元格类型 在处理Excel文件时,首先需要判断每个单元格的数据类型,以确定其内容。Apache POI提供了`CellType`枚举,包括`NUMERIC`、`...
`java.time`包中的核心类包括`LocalDate`、`LocalTime`、`LocalDateTime`、`ZonedDateTime`等,它们分别用于处理日期、时间、日期和时间(不包含时区)以及带有时区的日期和时间。对于题目中提到的计算星期几和后几...
本教程将深入讲解如何使用Java Swing编写一个日期下拉框控件,并介绍一个用于比较日期先后的工具类。 首先,Swing 提供了 `JCalendar` 类库,它允许开发者创建日期选择器。但是,由于 `JCalendar` 不是Java标准库的...
这篇博客"Java日期转换"探讨了如何在Java中有效地转换和操作日期。Java提供了多种类库来支持日期和时间的操作,包括`java.util.Date`、`java.text.SimpleDateFormat`、`java.time`包中的类等。本文将详细讲解这些类...