个人整理的关于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 6770本段代码主要是一个工具。费话不多说, 注:代码中的一些常量 ... -
对象转XML
2013-02-19 10:47 916代码如下: import java.util.List; ... -
对象转JSON
2013-02-19 10:43 934使用到的JAR包 ezmorph.jar xom ... -
java操作数据的部分代码
2013-01-31 14:45 01、根据上级取下级:所有的子集某值 String sql ... -
许多段代码
2013-01-31 14:25 8881、项目地址与类的包名路径 String pro ... -
Java反射Bean
2013-01-31 14:11 744import java.lang.reflect.Fiel ... -
将java编译后的Class转成exe
2014-02-21 11:32 955从www.towerj.com获得一个T ... -
身份证验证
2012-11-29 09:53 696/****************************** ... -
java中的乱码解决方案
2012-10-27 11:16 788java后台转换编码str= new String(str.g ... -
process
2011-08-10 13:24 688//取得所有参数及值; String url = req ... -
Page Sql
2011-08-10 13:20 735/** * 数量统计 * @param sql ... -
导入导出
2011-08-10 13:15 8501、保存到文件 public File queryToF ... -
警告:Parameters: Invalid chunk ignored.
2011-05-24 12:22 827警告:Parameters:Invalid chunk ign ... -
Myeclipse 优化
2011-04-18 14:38 635关闭MyEclipse7.0自动更新 ... -
编码转换
2011-01-21 14:47 746编码转换! /** * @author yshli ...
相关推荐
各种Java功能代码,Java访问XML文件,Java数据库访问技术,Java对工作方式日期的处理
java常用代码方法很适合初学者和刚刚参加工作的程序员,里面包含了常用正则表达式、公共日期类、串口驱动、各种数据库连接、公交换乘算法、 列出某文件夹及其子文件夹下面的文件,并可根据扩展名过滤等等很多有用的...
2、时区处理:了解如何使用Java日期时间类处理多时区的情况,包括转换、调整时差、比较等操作。 3、计划任务与调度:学习如何使用日期时间类来实现计划任务和调度功能,例如定时执行任务、定期触发事件等。 4、日历...
Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择 Java语言开发的简洁实用的日期选择控件,源码文件功能说明: [DateChooser.java] Java 日期选择控件(主体类) [public] ...
Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择 Java语言开发的简洁实用的日期选择控件,源码文件功能说明: [DateChooser.java] Java 日期选择控件(主体类) [public] ...
031106_【第11章:Java常用类库】_日期操作类(DateFormat、SimpleDateFormat)笔记.pdf 031107_〖第11章:Java常用类库〗_实例操作:取得当前日期笔记.pdf 031108_【第11章:Java常用类库】_Math与Random类笔记.pdf...
Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择 Java语言开发的简洁实用的日期选择控件,源码文件功能说明: [DateChooser.java] Java 日期选择控件(主体类) [public] ...
Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择 Java语言开发的简洁实用的日期选择控件,源码文件功能说明: [DateChooser.java] Java 日期选择控件(主体类) [public] ...
Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择 Java语言开发的简洁实用的日期选择控件,源码文件功能说明: [DateChooser.java] Java 日期选择控件(主体类) [public] ...
Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择 Java语言开发的简洁实用的日期选择控件,源码文件功能说明: [DateChooser.java] Java 日期选择控件(主体类) [public] ...
你好java本Java项目用来验证一些常用代码的最佳实践写法HTTP服务器HTTP客户端IPv4 long2ip ip2long退房git clone https://github.com/zhaoming-mike/hello-java.git 跑步mvn clean install exec:java mvn clean ...
常用的java操作代码,获取IP,写cookie,日期转换,去除html代码,时间计算等
4、包含常用的工具:jquery、easy-ui、日期控件、highcharts图表控件、图片放大工具、富文本框等。 此代码包含了所有的jar包,用eclipse导入项目即可。 数据库定义在proxool.properties可自行修改。 国际化字符转换...
Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择 Java语言开发的简洁实用的日期选择控件,源码文件功能说明: [DateChooser.java] Java 日期选择控件(主体类) [public] ...
Java源码:DateHandler日期时间计算处理类文件,包括了一些常用的处理函数,比如计算是否是季度末,计算从现在开始几天后的时间,带格式的日期,得到当前时间,用于文件名,没有特殊字符,使用yyyyMMddHHmmss格式,...
Java API(Java Application Programming Interface)是Java应用程序编程接口的缩写,Java中的API,就是...java.util:该包中主要包含一些实用的工具类,比如集合框架类、日期处理类、字符串解析类、随机数生成类等。
目标:无侵入性,轻量级,常用功能,无数次测试,不断完善注意:JavaLib基于jdk8开发,如果你的jdk版本过低,请找到相应的工具类,复制相关代码,进行使用。快速开始添加如下依赖:<dependency> <groupId>...
java源程序 课件 常用类 抽象类与接口 图形用户界面 多线程反射 泛型 时间日期类 数组 异常处理 字符串类与正则表达等相关知识的ppt课件和源程序代码,是初学者的帮手,包含了Java所需的所有知识点。。。。