时间处理函数工具:得到时间戳,周一,周末,时间更改,时间精确计算。。。。
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.GregorianCalendar;
- import java.util.TimeZone;
- /**
- * 时间处理函数
- *
- * @20080509 15:50
- */
- public class DateUtil {
- private static final String DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss";
- public static final String TIME_YEAR = "yyyy";
- public static final String TIME_MONEN = "MM";
- public static final String TIME_DAY = "dd";
- public static String getDate(String interval, Date starttime, String pattern) {
- Calendar temp = Calendar.getInstance(TimeZone.getDefault());
- temp.setTime(starttime);
- temp.add(temp.MONTH, Integer.parseInt(interval));
- SimpleDateFormat sdf = new SimpleDateFormat(pattern);
- return sdf.format(temp.getTime());
- }
- /**
- * 将字符串类型转换为时间类型
- *
- * @return
- */
- public static Date str2Date(String str) {
- Date d = null;
- SimpleDateFormat sdf = new SimpleDateFormat(DEFAULT_PATTERN);
- try {
- d = sdf.parse(str);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return d;
- }
- public static Date str2Date(String str, String pattern) {
- Date d = null;
- SimpleDateFormat sdf = new SimpleDateFormat(pattern);
- try {
- d = sdf.parse(str);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return d;
- }
- /**
- * 将时间格式化
- *
- * @return
- */
- public static Date DatePattern(Date date) {
- SimpleDateFormat sdf = new SimpleDateFormat(DEFAULT_PATTERN);
- try {
- String dd = sdf.format(date);
- date = str2Date(dd);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return date;
- }
- /**
- * 将时间格式化
- */
- public static Date DatePattern(Date date, String pattern) {
- SimpleDateFormat sdf = new SimpleDateFormat(pattern);
- try {
- String dd = sdf.format(date);
- date = str2Date(dd, pattern);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return date;
- }
- public static String date2Str(Date date) {
- SimpleDateFormat sdf = new SimpleDateFormat(DEFAULT_PATTERN);
- return sdf.format(date);
- }
- public static String date2Str(Date date, String format) {
- SimpleDateFormat sdf = new SimpleDateFormat(format);
- return sdf.format(date);
- }
- /**
- * 获取昨天
- *
- * @param date
- * @return
- * @throws Exception
- */
- public static Date getLastDate(Date date) {
- Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
- calendar.setTime(date);
- calendar.add(calendar.DATE, -1);
- return str2Date(date2Str(calendar.getTime()));
- }
- /**
- * 获取前几天
- * @param date
- * @return
- */
- public static Date getBeforeDate(Date date,int dates) {
- Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
- calendar.setTime(date);
- calendar.add(calendar.DATE, -dates);
- return str2Date(date2Str(calendar.getTime()));
- }
- /**
- * 获取上周第一天(周一)
- *
- * @param date
- * @return
- * @throws Exception
- */
- public static Date getLastWeekStart(Date date) {
- Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
- calendar.setTime(date);
- int i = calendar.get(calendar.DAY_OF_WEEK) - 1;
- int startnum = 0;
- if (i == 0) {
- startnum = 7 + 6;
- } else {
- startnum = 7 + i - 1;
- }
- calendar.add(calendar.DATE, -startnum);
- return str2Date(date2Str(calendar.getTime()));
- }
- /**
- * 获取上周最后一天(周末)
- *
- * @param date
- * @return
- * @throws Exception
- */
- public static Date getLastWeekEnd(Date date) {
- Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
- calendar.setTime(date);
- int i = calendar.get(calendar.DAY_OF_WEEK) - 1;
- int endnum = 0;
- if (i == 0) {
- endnum = 7;
- } else {
- endnum = i;
- }
- calendar.add(calendar.DATE, -(endnum - 1));
- return str2Date(date2Str(calendar.getTime()));
- }
- /**
- * 根据年和月得到天数
- * @param num 月
- * @param year 年
- * @return
- */
- public static int getday(int num,int year){
- if(num==1 || num==3 || num==5 || num==7 || num==8 || num==10 || num==12){
- return 31;
- }else if(num==2){
- //判断是否为闰年
- if(year%400==0 || (year%4==0 && year%100!=0)){
- return 29;
- }else{
- return 28;
- }
- }else{
- return 30;
- }
- }
- /*
- * 计算当前日期距离下个月还有多少天
- */
- public static int getdaymis(Date time){
- int year = Integer.parseInt(
- new SimpleDateFormat(TIME_YEAR).format(time));//年
- int mm = Integer.parseInt(
- new SimpleDateFormat(TIME_MONEN).format(time));//月
- int dd = Integer.parseInt(
- new SimpleDateFormat(TIME_DAY).format(time));//日
- //获取当前年月的总天数
- int sdd = getday(mm,year);
- return sdd-dd;
- }
- /**
- * 日期转秒数
- * @param dateString
- * @return
- */
- public static long getTime(String dateString) {
- long time = 0;
- try {
- Date ret = null;
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- ret = sdf.parse(dateString);
- time = ret.getTime()/1000;
- } catch (Exception e) {
- }
- return time;
- }
- /**
- * 精确计算时间差,精确到日
- * @param fistill 起始日期
- * @param nowtime 结束日期
- * @param type type为1返回年月日(如:2年3个月零5天) 否则返回总的天数
- * @return
- */
- public static String patienage(Date fistill,Date nowtime,Integer type){
- int fyear = Integer.parseInt(
- new SimpleDateFormat(TIME_YEAR).format(fistill));//起始年
- int fmm = Integer.parseInt(
- new SimpleDateFormat(TIME_MONEN).format(fistill));//起始月
- int fdd = Integer.parseInt(
- new SimpleDateFormat(TIME_DAY).format(fistill));//起始日
- int nyear = Integer.parseInt(
- new SimpleDateFormat(TIME_YEAR).format(nowtime));//结束年
- int nmm = Integer.parseInt(
- new SimpleDateFormat(TIME_MONEN).format(nowtime));//结束月
- int ndd = Integer.parseInt(
- new SimpleDateFormat(TIME_DAY).format(nowtime));//结束日
- int cyear = nyear - fyear;
- int cmm = nmm - fmm;
- int cdd = ndd - fdd;
- int zyear = 0;
- int zmm = 0;
- int zdd = 0;
- int countddd = 0; //年月日累计天数
- if(cdd<0){
- if(cmm<0){
- zyear = cyear - 1;
- zmm = (cmm + 12)-1;
- int dd = getday(zmm,nyear-1);
- zdd = dd + cdd;
- countddd = zyear*365+zmm*30+zdd;
- }else if(cmm==0){
- zyear = cyear - 1;
- zmm = 12-1;
- int dd = getday(zmm,nyear-1);
- zdd = dd + cdd;
- countddd = zyear*365+zmm*30+zdd;
- }else{
- zyear = cyear;
- zmm = cmm - 1;
- int dd = getday(zmm,nyear);
- zdd = dd + cdd;
- countddd = zyear*365+zmm*30+zdd;
- }
- }else if(cdd==0){
- if(cmm<0){
- zyear = cyear - 1;
- zmm = cmm + 12;
- zdd = 0;
- countddd = zyear*365+zmm*30;
- }else if(cmm==0){
- zyear = cyear;
- zmm = 0;
- zdd = 0;
- countddd = zyear*365+zmm*30;
- }else{
- zyear = cyear;
- zmm = cmm;
- zdd = 0;
- countddd = zyear*365+zmm*30;
- }
- }else{
- if(cmm<0){
- zyear = cyear - 1;
- zmm = cmm + 12;
- zdd = cdd;
- countddd = zyear*365+zmm*30+zdd;
- }else if(cmm==0){
- zyear = cyear;
- zmm = 0;
- zdd = cdd;
- countddd = zyear*365+zmm*30+zdd;
- }else{
- zyear = cyear;
- zmm = cmm;
- zdd = cdd;
- countddd = zyear*365+zmm*30+zdd;
- }
- }
- String ptime = null;
- if(zdd!=0){
- if(zmm!=0){
- if(zyear!=0){
- ptime = zyear+"年"+zmm+"个月"+"零"+zdd+"天";
- }else{
- ptime = zmm+"个月"+"零"+zdd+"天";
- }
- }else{
- if(zyear!=0){
- ptime = zyear+"年"+"零"+zdd+"天";
- }else{
- ptime = zdd+"天";
- }
- }
- }else{
- if(zmm!=0){
- if(zyear!=0){
- ptime = zyear+"年"+zmm+"个月";
- }else{
- ptime = zmm+"个月";
- }
- }else{
- if(zyear!=0){
- ptime = zyear+"年";
- }else{
- ptime = null;
- }
- }
- }
- if(type==1){
- return ptime; //返回年月日(如:2年3个月零5天)
- }else{
- return String.valueOf(countddd); //返回总天数
- }
- }
- /**
- * 得到月数
- * @param year 年数差
- * @param month 月数差
- * @return
- */
- public static int getCmm(Integer year,Integer month){
- int zmm = 0;
- if(month < 0){
- zmm = (month + 12)+(year-1)*12;
- }else if(month == 0){
- zmm = year*12;
- }else{
- zmm = year*12+month;
- }
- return zmm;
- }
- /**
- * 改更现在时间
- */
- public static Date changeDate(String type, int value) {
- Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
- if (type.equals("month")) {
- calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) + value);
- } else if (type.equals("date")) {
- calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) + value);
- }
- return calendar.getTime();
- }
- /**
- * 更改时间
- */
- public static Date changeDate(Date date, String type, int value) {
- if (date != null) {
- // Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
- Calendar calendar = new GregorianCalendar();
- calendar.setTime(date);
- // Calendar calendar = Calendar.
- if (type.equals("month")) {
- calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) + value);
- } else if (type.equals("date")) {
- calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) + value);
- } else if (type.endsWith("year")) {
- calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR) + value);
- }
- return calendar.getTime();
- }
- return null;
- }
- /**
- * haoxw 比较时间是否在这两个时间点之间
- *
- * @param time1
- * @param time2
- * @return
- */
- public static boolean checkTime(String time1, String time2) {
- Calendar calendar = Calendar.getInstance();
- Date date1 = calendar.getTime();
- Date date11 = DateUtil.str2Date(DateUtil.date2Str(date1, "yyyy-MM-dd") + " " + time1);// 起始时间
- Calendar c = Calendar.getInstance();
- c.add(Calendar.DATE, 1);
- Date date2 = c.getTime();
- Date date22 = DateUtil.str2Date(DateUtil.date2Str(date2, "yyyy-MM-dd") + " " + time2);// 终止时间
- Calendar scalendar = Calendar.getInstance();
- scalendar.setTime(date11);// 起始时间
- Calendar ecalendar = Calendar.getInstance();
- ecalendar.setTime(date22);// 终止时间
- Calendar calendarnow = Calendar.getInstance();
- if (calendarnow.after(scalendar) && calendarnow.before(ecalendar)) {
- return true;
- } else {
- return false;
- }
- }
- /**
- * haoxw 比较时间是否在这两个时间点之间
- *
- * @param date11
- * @param date22
- * @return
- */
- public static boolean checkTime(Date date11, Date date22) {
- Calendar scalendar = Calendar.getInstance();
- scalendar.setTime(date11);// 起始时间
- Calendar ecalendar = Calendar.getInstance();
- ecalendar.setTime(date22);// 终止时间
- Calendar calendarnow = Calendar.getInstance();
- if (calendarnow.after(scalendar) && calendarnow.before(ecalendar)) {
- return true;
- } else {
- return false;
- }
- }
- public static boolean checkDate(String date1, String date2) {
- Date date11 = DateUtil.str2Date(date1, "yyyy-MM-dd HH:mm:ss");// 起始时间
- Date date22 = DateUtil.str2Date(date2, "yyyy-MM-dd HH:mm:ss");// 终止时间
- Calendar scalendar = Calendar.getInstance();
- scalendar.setTime(date11);// 起始时间
- Calendar ecalendar = Calendar.getInstance();
- ecalendar.setTime(date22);// 终止时间
- Calendar calendarnow = Calendar.getInstance();
- System.out.println(date11.toString());
- System.out.println(date22.toString());
- System.out.println(scalendar.toString());
- System.out.println(ecalendar.toString());
- System.out.println(calendarnow.toString());
- if (calendarnow.after(scalendar) && calendarnow.before(ecalendar)) {
- return true;
- } else {
- return false;
- }
- }
- /**
- * 获取interval天之前的日期
- *
- * @param interval
- * @param starttime
- * @param pattern
- * @return
- */
- public static Date getIntervalDate(String interval, Date starttime, String pattern) {
- Calendar temp = Calendar.getInstance();
- temp.setTime(starttime);
- temp.add(temp.DATE, Integer.parseInt(interval));
- SimpleDateFormat sdf = new SimpleDateFormat(pattern);
- String shijian = sdf.format(temp.getTime());
- return str2Date(shijian);
- }
- public static Date formatDate(Date date){
- SimpleDateFormat bartDateFormat =
- new SimpleDateFormat("yyyy-MM-dd");
- System.out.println(bartDateFormat.format(date));
- SimpleDateFormat bartDateFormat1 =new SimpleDateFormat("yyyy-MM-dd");
- try {
- Date date1 = bartDateFormat1.parse(bartDateFormat.format(date));
- } catch (ParseException e) {
- e.printStackTrace();
- }
- System.out.println(date.getTime());
- return date;
- }
- public static void main(String arf[]) {
- /*String time1 = "2009-05-07 19:20:00";
- String time2 = "2009-05-08 19:30:00";
- DateUtil d = new DateUtil();
- System.out.println(d.checkDate(time1, time2));
- System.out.println(d.date2Str(new Date()));*/
- //System.out.println(d.getIntervalDate("-3", new Date(), DEFAULT_PATTERN));
- Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
- System.out.println(calendar.toString());
- System.out.println(DateUtil.str2Date("20090731","yyyyMMdd"));
- System.out.println(DateUtil.getBeforeDate(new Date(),2 ));
- System.out.println(DateUtil.DatePattern(new Date()));
- SimpleDateFormat bartDateFormat =
- new SimpleDateFormat("yyyy-MM-dd");
- Date date = new Date();
- System.out.println("date;"+bartDateFormat.format(date));
- SimpleDateFormat bartDateFormat1 =new SimpleDateFormat("yyyy-MM-dd");
- try {
- Date date1 = bartDateFormat1.parse(bartDateFormat.format(date));
- System.out.println("日期:"+date1);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- }
- }
相关推荐
总之,DateUtil工具类是一个集成了日期时间处理各种常见操作的实用工具,简化了开发者对日期时间的管理,提高了代码的可读性和可维护性。在实际项目中,使用这样的工具类可以大大提高开发效率,同时避免了重复造轮子...
`java.time`包包含如`LocalDate`, `LocalTime`, `LocalDateTime`等类,提供了更强大且易用的时间处理功能。然而,由于许多老项目仍然使用`java.util.Date`,DateUtil可能仍然基于这个旧的API,或者它也可能已经进行...
在SpringBoot项目中,这些工具类可以作为全局的日期时间处理工具,使得代码更加简洁、易读。 总的来说,这个压缩包中的两个文件是针对日期时间处理的实用工具,结合了Java 8的新特性,旨在提高开发者在SpringBoot...
### Python 时间处理函数 #### 1. datetime 模块 在Python中,`datetime`模块是处理日期和时间的核心工具之一。它提供了一系列用于创建、格式化和操作日期时间对象的方法。以下是一些关键的函数和类: - **...
本篇文章将深入探讨时间处理函数工具,特别是关于时间戳计算的相关方法。时间戳是表示特定时间点的一个数字,通常以秒或毫秒为单位,自1970年1月1日(UTC/GMT的午夜)开始所经过的秒数。下面我们将介绍如何使用Java...
Python的`dateutil`模块是Python编程中处理日期和时间的一个强大工具,尤其适用于解析不规则的日期字符串和处理各种时间间隔。在64位操作系统上使用时,它提供了与32位系统相同的功能,但可以处理更大的数据范围。本...
总之,`dateutil`模块是Python中处理日期和时间的强大工具,尤其在OpenERP7这样的企业级应用中,它的功能和灵活性能极大地提升代码的可读性和效率。通过理解和熟练使用`dateutil`,开发者可以更轻松地处理各种时间...
`dateutil`库则是对Python标准库`datetime`模块的扩展,提供了更灵活和强大的日期和时间处理功能。它支持解析复杂的日期和时间字符串,如带有时区的信息、相对日期(如“两周前”或“下周一”),以及对日期和时间的...
`python-dateutil`本身是一个强大的库,用于处理日期和时间,它提供了许多在Python标准库`datetime`模块之外的额外功能,如解析不规则的时间间隔、处理各种时区等。 总结起来,`types-python-dateutil-0.1.4.tar.gz...
本篇将重点介绍Java操作日期时间的工具类,特别是通过`DateUtil.java`这个自定义工具类的实现方式。 `java.util.Date`是Java早期用来表示日期和时间的基础类,它包含了日期和时间的信息,但没有区分日期和时间。...
总之,`dateutil` 是 Python 日期和时间处理中的一个强大工具,它的解析能力、灵活性和丰富的功能使得它在各种项目中都有广泛的应用。通过深入学习和实践,开发者可以更高效地处理与日期和时间相关的编程任务。
这表明它是一个专门为Python 2.7环境设计的日期和时间处理工具。 Dateutil库的核心优势在于其解析功能,它能解析大多数人类可读的日期和时间字符串,包括非标准格式,这在处理不规范或多种格式的时间数据时非常有用...
在博文的源码`DateUtil.java`中,可能包含了一些自定义的日期处理函数,如通用的日期格式化方法、时间差计算、日期转换等。这些工具方法通常会封装一些常见操作,使得在项目中使用日期时,代码更加整洁,可读性更强...
总的来说,`python_dateutil`是Python开发中不可或缺的工具,它提供了强大的日期和时间处理功能,让开发者能够更加灵活和高效地处理日期相关的任务。通过`python_dateutil-2.4.2-py2.py3-none-any.whl`文件,用户...
在Java中,`java.util.Date` 和 `java.time` 包提供了原生的日期时间处理功能,但自定义的`DateUtil` 类可以提供更便捷和定制化的操作。 首先,`DateUtil` 可能会有一个构造器,但为了保持工具类的静态方法特性,这...
文件处理是数据处理的一个重要部分,Pandas的`read_csv`函数是读取CSV文件的常用工具,可以指定分隔符、是否将某列作为索引等。如果CSV文件中包含日期时间格式的数据,可以使用`parse_dates`参数将这些列转换为`...
`dateutil`库是另一个强大的时间处理扩展,它提供了解析不规则日期和时间字符串的功能,以及复杂的日期范围操作。例如,`dateutil.parser.parse()`函数可以自动识别并解析多种格式的时间字符串。 在多线程或异步...
`dateutil`库提供了高级日期和时间处理功能,扩展了Python内置的datetime模块。安装相对简单,直接使用pip即可: ```bash pip install python_dateutil ``` 最后,`pyparsing`是一个解析表达式工具包,常用于构建...
(DateUtil.java)时间处理类 (RandomUtil.java)随机函数处理类 (OperationUtil.java)Collection工具包类(CollectionUtil.java)等等,如果下载者觉得使用方面的话,在下十分感谢,申明:代码没有经过十分严格...
在Android开发中,时间处理是常见的任务之一,尤其是在日志记录、用户界面显示或网络通信中。本篇文章将深入探讨Android中的时间相关工具类,特别是如何进行时间戳与日期之间的转换,以及如何将时间日期转化为各种...