个人整理的关于java中日期处理会应用到的程序。
/** * Copyright ? 2010 mywhile Co.Ltd. * All right reserved. * * 作者:yshlin * @author yshlin * E-mail:yshlin1106@126.com */ package com.mywhile.global.tools; import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; public class GlobalDateMethod { /*********************************bean***************************************/ private String temp; private String info; private ArrayList<String> week; private static long DAY = 24L * 60L * 60L * 1000L; /*********************************set/get***************************************/ public String getTemp() { return temp; } public void setTemp(String temp) { this.temp = temp; } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } public ArrayList<String> getWeek() { return week; } public void setWeek(ArrayList<String> week) { this.week = week; } /**********************************static method****************************************/ /** * 将日期转换成Date格式 * @param strDate * @return * 例:输入:2010-12-17 * 返回:Fri Dec 17 00:00:00 CST 2010 */ public static Date strToDate(String strDate) { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); ParsePosition pos = new ParsePosition(0); Date strtodate = formatter.parse(strDate, pos); return strtodate; } /** * 取得这个日期是周几 * @param strdate * @return * 例:输入:2010-12-17 * 返回:5 * 2010年12月17日是周五 */ public static String getWeekDayIntNumberForStrDate(String strdate) { Date date = strToDate(strdate); Calendar c = Calendar.getInstance(); c.setTime(date); //hour中存的就是星期几了,其范围 1~7 //Calendar.DAY_OF_WEEK 的取值:1=星期日 7=星期六,其他类推 int week=c.get(Calendar.DAY_OF_WEEK)-1; return week+""; } /** * 检查时间大小 start > end * @param start * @param end * @return * 例: * "2010-12-01" before "2010-11-1" = false; * "2010-12-01" before "2010-12-01" = false; * "2010-11-01" before "2010-12-1" = true; */ public static boolean checkStartDateBeforeEndDate(String start, String end) { return strToDate(start).before(strToDate(end)); } /** * 检查时间大小 start < end * @param start * @param end * @return * 例: * "2010-12-01" after "2010-11-1" = true; * "2010-12-01" after "2010-12-01" = false; * "2010-11-01" after "2010-12-1" = false; */ public static boolean checkStartDateAfterEndDate(String start, String end) { return strToDate(start).after(strToDate(end)); } /** * 得到一个时间延后或前移几天的时间,sdate为时间,delay为前移或后延的天数 * @param nowdate YYYY-MM-DD * @param delay * @return */ public static String getNextDay(String sdate, int delay) { try { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String mdate = ""; Date d = strToDate(sdate); long myTime = (d.getTime() / 1000) + delay * 24 * 60 * 60; d.setTime(myTime * 1000); mdate = format.format(d); return mdate; } catch (Exception e) { return ""; } } /** * 获取现在时间 * @return 返回短时间字符串格式yyyy-MM-dd */ public static String getStringDateShort() { Date currentTime = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); String dateString = formatter.format(currentTime); return dateString; } /** * 将短时间格式时间转换为字符串 yyyy-MM-dd * @param date YYYY-MM-DD * @return */ public static String dateToStr(Date date) { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); String dateString = formatter.format(date); return dateString; } /** * 得到二个日期间的间隔天数 * @param sdate1 YYYY-MM-DD * @param sdate2 YYYY-MM-DD * @return * 若前一日期比后一日期早则返回负数,若前一日期比后一日期晚则反回正数 */ public static String getTwoDay(String sdate1, String sdate2) { SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd"); long day = 0; try { Date date = myFormatter.parse(sdate1); Date mydate = myFormatter.parse(sdate2); day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000); } catch (Exception e) { return ""; } return day + ""; } /** * 取得当前周的每一天 * @return */ public static String[] getNowDayForWeek(){ String now = getStringDateShort(); String num = getWeekDayIntNumberForStrDate(now); String temp[] = new String[7]; if(num.equals("5")){ temp[0] = GlobalDateMethod.getNextDay(now, -4); temp[1] = GlobalDateMethod.getNextDay(now, -3); temp[2] = GlobalDateMethod.getNextDay(now, -2); temp[3] = GlobalDateMethod.getNextDay(now, -1); temp[4] = now; temp[5] = GlobalDateMethod.getNextDay(now, 1); temp[6] = GlobalDateMethod.getNextDay(now, 2); }else if(num.equals("4")){ temp[0] = GlobalDateMethod.getNextDay(now, -3); temp[1] = GlobalDateMethod.getNextDay(now, -2); temp[2] = GlobalDateMethod.getNextDay(now, -1); temp[3] = now; temp[4] = GlobalDateMethod.getNextDay(now, 1); temp[5] = GlobalDateMethod.getNextDay(now, 2); temp[6] = GlobalDateMethod.getNextDay(now, 3); }else if(num.equals("3")){ temp[0] = GlobalDateMethod.getNextDay(now, -2); temp[1] = GlobalDateMethod.getNextDay(now, -1); temp[2] = now; temp[3] = GlobalDateMethod.getNextDay(now, 1); temp[4] = GlobalDateMethod.getNextDay(now, 2); temp[5] = GlobalDateMethod.getNextDay(now, 3); temp[6] = GlobalDateMethod.getNextDay(now, 4); }else if(num.equals("2")){ temp[0] = GlobalDateMethod.getNextDay(now, -1); temp[1] = now; temp[2] = GlobalDateMethod.getNextDay(now, 1); temp[3] = GlobalDateMethod.getNextDay(now, 2); temp[4] = GlobalDateMethod.getNextDay(now, 3); temp[5] = GlobalDateMethod.getNextDay(now, 4); temp[6] = GlobalDateMethod.getNextDay(now, 5); }else if(num.equals("1")){ temp[0] = now; temp[1] = GlobalDateMethod.getNextDay(now, 1); temp[2] = GlobalDateMethod.getNextDay(now, 2); temp[3] = GlobalDateMethod.getNextDay(now, 3); temp[4] = GlobalDateMethod.getNextDay(now, 4); temp[5] = GlobalDateMethod.getNextDay(now, 5); temp[6] = GlobalDateMethod.getNextDay(now, 6); }else if(num.equals("0")){ temp[0] = GlobalDateMethod.getNextDay(now, -6); temp[1] = GlobalDateMethod.getNextDay(now, -5); temp[2] = GlobalDateMethod.getNextDay(now, -4); temp[3] = GlobalDateMethod.getNextDay(now, -3); temp[4] = GlobalDateMethod.getNextDay(now, -2); temp[5] = GlobalDateMethod.getNextDay(now, -1); temp[6] = now; }else{ temp[0] = GlobalDateMethod.getNextDay(now, -5); temp[1] = GlobalDateMethod.getNextDay(now, -4); temp[2] = GlobalDateMethod.getNextDay(now, -3); temp[3] = GlobalDateMethod.getNextDay(now, -2); temp[4] = GlobalDateMethod.getNextDay(now, -1); temp[5] = now; temp[6] = GlobalDateMethod.getNextDay(now, 1); } return temp; } /** * 根据输入的日期取出这一周的开始结尾 * @param date YYYY-MM-DD * @return * 例:输入:2010-01-15 返回:2010-01-11,2010-01-17 */ public static String dayOfWeekStartEnd(String date) { String reD = ""; Date today = GlobalDateMethod.strToDate(date);; Calendar cal = Calendar.getInstance(); cal.setTime(today); int between = cal.get(Calendar.DAY_OF_WEEK) - 1; int subMonday = 0; if (between >= 1 && between <= 6) { subMonday = 1 - between; } else if (between == 0) { subMonday = -6; } cal.add(Calendar.DAY_OF_MONTH, subMonday); reD += new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()); cal.add(Calendar.DAY_OF_MONTH, 6); reD += ("," + new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime())); return reD; } /** * 输入一个日期取这一周的第一天,即周一 * @param date YYYY-MM-DD * @return */ public static String dayOfWeekStart(String date) { String reD = ""; Date today = GlobalDateMethod.strToDate(date);; Calendar cal = Calendar.getInstance(); cal.setTime(today); int between = cal.get(Calendar.DAY_OF_WEEK) - 1; int subMonday = 0; if (between >= 1 && between <= 6) { subMonday = 1 - between; } else if (between == 0) { subMonday = -6; } cal.add(Calendar.DAY_OF_MONTH, subMonday); reD = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()); cal.add(Calendar.DAY_OF_MONTH, 6); //reD += ("," + new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime())); return reD; } /** * 输入一个日期,取这一日期所在周的最后一天,即周日 * @param date YYYY-MM-DD * @return */ public static String dayOfWeekEnd(String date) { String reD = ""; Date today = GlobalDateMethod.strToDate(date);; Calendar cal = Calendar.getInstance(); cal.setTime(today); int between = cal.get(Calendar.DAY_OF_WEEK) - 1; int subMonday = 0; if (between >= 1 && between <= 6) { subMonday = 1 - between; } else if (between == 0) { subMonday = -6; } cal.add(Calendar.DAY_OF_MONTH, subMonday); reD = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()); cal.add(Calendar.DAY_OF_MONTH, 6); reD = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()); return reD; } /** * 取两个日期之间相隔多少天 * @param date1 YYYY-MM-DD * @param date2 YYYY-MM-DD * @return */ public static long getDaysLong(String date1, String date2) { if (date1 == null || date1.equals("")) return 0; if (date2 == null || date2.equals("")) return 0; // 转换为标准时间 SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd"); Date date = null; Date mydate = null; try { date = myFormatter.parse(date1); mydate = myFormatter.parse(date2); } catch (Exception e) { } long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000); return day; } /** * 取两个日期之间相隔多少天;日期相隔较短 * @param date1 YYYY-MM-DD * @param date2 YYYY-MM-DD * @return */ public static int getDaysInt(String date1, String date2) { if (date1 == null || date1.equals("")) return 0; if (date2 == null || date2.equals("")) return 0; // 转换为标准时间 SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd"); Date date = null; Date mydate = null; try { date = myFormatter.parse(date1); mydate = myFormatter.parse(date2); } catch (Exception e) { } int day = (int)((date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000)); return day; } /** * 两个日期之间的所有周,返回一个字符串数组,每个字符串内容包括每周的开始时间,结束时间 * @param start YYYY-MM-DD * @param end YYYY-MM-DD * @return */ public static String[] getWeekOfStartEndDate(String start, String end){ String sdate = dayOfWeekStart(start); String edate = dayOfWeekEnd(end); int days = getDaysInt(edate, sdate); days = days / 7 + ((days % 7) > 0 ? 1 : 0); String reS[] = new String[days]; for(int i=0;i<days;i++){ String d = dayOfWeekStartEnd(sdate); int ts = getDaysInt(edate, sdate); if(ts < 0){ return reS; }else{ reS[i] = d; } sdate = getNextDay(sdate, 7); } return reS; } }
- GlobalDateMethod.rar (3 KB)
- 下载次数: 0
发表评论
-
java中List<Map>形的数据转JSON形的树
2014-02-21 11:13 6813本段代码主要是一个工具。费话不多说, 注:代码中的一些常量 ... -
对象转XML
2013-02-19 10:47 960代码如下: import java.util.List; ... -
对象转JSON
2013-02-19 10:43 980使用到的JAR包 ezmorph.jar xom ... -
java操作数据的部分代码
2013-01-31 14:45 01、根据上级取下级:所有的子集某值 String sql ... -
许多段代码
2013-01-31 14:25 9341、项目地址与类的包名路径 String pro ... -
Java反射Bean
2013-01-31 14:11 770import java.lang.reflect.Fiel ... -
将java编译后的Class转成exe
2014-02-21 11:32 997从www.towerj.com获得一个T ... -
身份证验证
2012-11-29 09:53 743/****************************** ... -
java中的乱码解决方案
2012-10-27 11:16 833java后台转换编码str= new String(str.g ... -
process
2011-08-10 13:24 717//取得所有参数及值; String url = req ... -
Page Sql
2011-08-10 13:20 783/** * 数量统计 * @param sql ... -
导入导出
2011-08-10 13:15 8851、保存到文件 public File queryToF ... -
警告:Parameters: Invalid chunk ignored.
2011-05-24 12:22 859警告:Parameters:Invalid chunk ign ... -
Myeclipse 优化
2011-04-18 14:38 685关闭MyEclipse7.0自动更新 ... -
编码转换
2011-01-21 14:47 804编码转换! /** * @author yshli ...
相关推荐
综上所述,这份“java源码:Java日期选择控件完整源代码.rar”涵盖了Java日期处理、GUI控件使用、事件处理以及可能的UI布局设计等多个知识点,对提升Java桌面应用开发技能大有裨益。通过对源码的阅读和实践,开发者...
本压缩包“java常用代码”集合了一系列基础到进阶的Java代码示例,涵盖了多个关键领域,有助于初学者快速掌握Java编程的核心概念。 1. **遗产算法**:在Java中,继承是面向对象特性之一,它允许一个类(子类)继承...
它可能包含了各种常用的函数、类和工具,如数据结构、算法、网络通信、文件操作、日期时间处理等模块。这些模块经过优化和封装,可以方便地集成到自己的项目中,提高开发效率。通过研究这个库的源代码,开发者不仅...
通过以上分析可以看出,示例代码涵盖了 Java 日期处理的基本功能,包括日期格式的定义、日期与字符串之间的转换以及对日期进行操作的方法。这些知识点对于开发人员来说是非常实用的,能够帮助他们在实际项目中高效地...
本文将基于标题“Java中对日期的常用处理(转)”来深入探讨Java中的日期处理,结合`DateUtil.java`这个文件名,我们可以推测这是一个包含日期处理工具类的源代码文件。 首先,Java中处理日期的最基础类是`java....
以下是对标题“java常用代码的集合”和描述中提及的知识点的详细解释,以及与标签相关的具体代码示例。 1. ISBN验证: ISBN(国际标准书号)是用于唯一标识书籍的编码。在Java中,我们可以编写一个方法来验证一个...
8. **Java标准库**:Java标准库(Java API)包含了大量预定义的类和方法,如数学运算、日期时间处理、网络编程等,熟练使用它们能提升开发效率。 9. **JDBC**:Java数据库连接(JDBC)是Java访问数据库的标准API,...
在本课程中,我们主要探讨的是“第一行代码Java”一书中的第10章,这一章主要聚焦于Java常用类库的使用。通过学习这些类库,开发者能够更高效地进行程序开发,掌握Java的强大功能。以下是本章涉及的一些核心知识点:...
总的来说,Java提供了多种处理日期时间的工具,但为了保持代码的现代性和可维护性,应尽可能地使用`java.time`包中的类。同时,理解和掌握`Calendar`和`SimpleDateFormat`的基本用法对于理解旧代码或者在不支持新API...
### Java代码常用技巧:Oracle数据库表操作返回值处理方法 #### 概述 在实际的软件开发工作中,处理数据库查询结果是一项常见的任务。本篇主要介绍如何利用Java语言结合Oracle数据库进行表操作,并通过示例代码...
Java中的日期处理涉及到多个类,包括Date、Calendar、GregorianCalendar以及日期格式化类如DateFormat和SimpleDateFormat。这些类主要用于管理、操作和格式化日期和时间。以下是对这些类的详细说明: 1. **Date类**...
各种Java功能代码,Java访问XML文件,Java数据库访问技术,Java对工作方式日期的处理
Java日期处理是编程中常见的需求,尤其是在开发涉及时间计算、日期格式化或事件调度的应用时。在Java中,处理日期和时间主要依赖于`java.util.Date`、`java.util.Calendar`以及自Java 8引入的`java.time`包中的类。...
在给定的标题“Java常用日期辅助类”中,我们可以推测这篇博文可能探讨了Java中的一些核心日期处理工具,如`java.util.Date`,`java.time`包中的类,以及自定义的日期助手类`DateHelper.java`。 `java.util.Date`是...
java常用代码方法很适合初学者和刚刚参加工作的程序员,里面包含了常用正则表达式、公共日期类、串口驱动、各种数据库连接、公交换乘算法、 列出某文件夹及其子文件夹下面的文件,并可根据扩展名过滤等等很多有用的...
2. **实用工具类**:了解Jodd提供的各种工具类,如字符串处理、日期时间操作、反射、I/O等,可以提升日常编码效率。 3. **模块化设计**:观察`mod`目录,可以学习如何组织和划分大型项目,以及如何实现模块间的解...
本文将重点讲解Java日期的常用操作方法,主要基于提供的`JavaDateUtil.java`文件,假设这是一个自定义的日期工具类。 首先,我们来了解`java.util.Date`。这个类在早期的Java版本中被广泛使用,但它的API设计并不...