已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
* Title: 时间格式转化与计算*/package ;import java.util.Calendar;import java.util.Date;import java.text.*;public class DateTime public DateTime() /* * 取得系统当前时间 * return String yyyy-mm-dd */ public String getCurrentDate() Calendar rightNow = Calendar.getInstance(); int year = rightNow.get(rightNow.YEAR); int month = rightNow.get(rightNow.MONTH) + 1; int day = rightNow.get(rightNow.DATE); return year + - + month + - + day; /* * 取得系统当前时间 * return String yyyy年mm月dd日 */ public String getCurrentDate1() Calendar rightNow = Calendar.getInstance(); int year = rightNow.get(rightNow.YEAR); int month = rightNow.get(rightNow.MONTH) + 1; int day = rightNow.get(rightNow.DATE); return year + 年 + month + 月 + day + 日; /* * 取得系统当前时间 * return String yyyymmdd */ public String getCurrentDate2() Calendar rightNow = Calendar.getInstance(); int year = rightNow.get(rightNow.YEAR); int month = rightNow.get(rightNow.MONTH) + 1; int day = rightNow.get(rightNow.DATE); return year + + month + + day; /* * 取得系统当前时间 * return String yyyy-mm */ public String getCurrentDate3() Calendar rightNow = Calendar.getInstance(); int year = rightNow.get(rightNow.YEAR); int month = rightNow.get(rightNow.MONTH) + 1; /int day = rightNow.get(rightNow.DATE); return year + - + month; /* * 取得系统当前时间 * return String yyyyMMddhhmmss */ public String getCurrentDate4() Calendar c = Calendar.getInstance(); c.add(c.SECOND, 0); return + c.get(c.YEAR) + + (c.get(c.MONTH) + 1) + + c.get(c.DATE)+c.get(c.HOUR_OF_DAY)+c.get(c.MINUTE)+c.get(c.SECOND); /* * 取得系统当前时间 * return String yyyy-MM-dd hh:mm:ss */* public String getCurrentDate5() SimpleDateFormat simpleDateFormat =new SimpleDateFormat(yyyy-MM-dd hh:mm:ss); java.util.Date date = new java.util.Date(); String time = simpleDateFormat.format(date); return time; */* 取得系统当前时间* return String yyyy-MM-dd hh:mm:ss*/ public String getCurrentDate5() Calendar c = Calendar.getInstance(); c.add(c.SECOND, 0); return + c.get(c.YEAR) + - + (c.get(c.MONTH) + 1) + - + c.get(c.DATE)+ +c.get(c.HOUR_OF_DAY)+:+c.get(c.MINUTE)+:+c.get(c.SECOND); /* * 取得系统当前时间 常用于订单号 * return String yyyyMMddhhmmss */ public String getCurrentDate6() Calendar c = Calendar.getInstance(); c.add(c.SECOND, 0); String year=c.get(c.YEAR)+; return + year.subSequence(2,year.length()+ + (c.get(c.MONTH) + 1) + + c.get(c.DATE)+-+c.get(c.HOUR_OF_DAY)+c.get(c.MINUTE)+c.get(c.SECOND)+-+c.get(c.MILLISECOND); /* * 取得系统当前时间前n个月的相对应的一天 * param n int * return String yyyy-mm-dd */ public String getNMonthBeforeCurrentDay(int n) Calendar c = Calendar.getInstance(); c.add(c.MONTH, -n); return + c.get(c.YEAR) + - + (c.get(c.MONTH) + 1) + - + c.get(c.DATE); /* * 取得系统当前时间后n个月的相对应的一天 * param n int * return String yyyy-mm-dd */ public String getNMonthAfterCurrentDay(int n) Calendar c = Calendar.getInstance(); c.add(c.MONTH, n); return + c.get(c.YEAR) + - + (c.get(c.MONTH) + 1) + - + c.get(c.DATE); /* * 取得系统当前时间前n天 * param n int * return String yyyy-mm-dd */ public String getNDayBeforeCurrentDate(int n) Calendar c = Calendar.getInstance(); c.add(c.DAY_OF_MONTH, -n); return + c.get(c.YEAR) + - + (c.get(c.MONTH) + 1) + - + c.get(c.DATE); /* * 取得系统当前时间后n天 * param n int * return String yyyy-mm-dd */ public String getNDayAfterCurrentDate(int n) Calendar c = Calendar.getInstance(); c.add(c.DAY_OF_MONTH, n); return + c.get(c.YEAR) + - + (c.get(c.MONTH) + 1) + - + c.get(c.DATE); /- /取过去一个时间对应的系统当年的一天 public String getCurrentDateAfterPastDate(String sPastDate) if (sPastDate != null & !sPastDate.equals() Date date = switchStringToDate(sPastDate); Calendar c = Calendar.getInstance(); c.setTime(date); int iPastYear = c.get(c.YEAR); Calendar c1 = Calendar.getInstance(); int iCurrentYear = c1.get(c1.YEAR); c.add(c.YEAR, iCurrentYear - iPastYear); return + c.get(c.YEAR) + - + (c.get(c.MONTH) + 1) + - + c.get(c.DATE); else return null; /* * 将一个日期字符串转化成日期 * param sDate String * return Date yyyy-mm-dd */ public Date switchStringToDate(String sDate) Date date = null; try SimpleDateFormat df = new SimpleDateFormat(yyyy-MM-dd); date = df.parse(sDate); catch (Exception e) System.out.println(日期转换失败: + e.getMessage(); return date; /* * 输入两个字符串型的日期,比较两者的大小 * param fromDate String * param toDate String * return boolean before为true */ public boolean compareTwoDateBigOrSmall(String fromDate, String toDate) Date dateFrom = this.switchStringToDate(fromDate); Date dateTo = this.switchStringToDate(toDate); if (dateFrom.before(dateTo) return true; else return false; /* * 将一个日期字符串转化成Calendar * param sDate String * return Calendar */ public Calendar switchStringToCalendar(String sDate) Date date = switchStringToDate(sDate); Calendar c = Calendar.getInstance(); c.setTime(date); return c; /* * 将一个日期转化成Calendar * param date Date * return Calendar */ public Calendar switchStringToCalendar(Date date) Calendar c = Calendar.getInstance(); c.setTime(date); return c; public String string2Date(String dateString) throws java.lang.Exception /*DateFormat dateFormat; dateFormat = new SimpleDateFormat(yyyy-MM-dd kk:mm:ss); dateFormat.setLenient(false); java.util.Date timeDate = dateFormat.parse(dateString);/util类型 /java.sql.Date dateTime = new java.sql.Date(timeDate.getTime();/sql类型 java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime();/Timestamp类型 */ SimpleDateFormat newk = new SimpleDateFormat (yyyy.MM.dd hh:mm:ss); SimpleDateFormat old = new SimpleDateFormat(MMM dd hh:mm:ss yyyy); String strDate = Mar 22 00:42:00 2002; Date d = old.parse(strDate); System.out.println(newk.format(d); return newk.format(d); /* * 取得某个时间前n个月的相对应的一天 * param sDate String * param n int * return String yyyy-mm-dd */ public String getNMonthBeforeOneDay(String sDate, int n) Calendar c = switchStringToCalendar(sDate); c.add(c.MONTH, -n); return + c.get(c.YEAR) + - + (c.get(c.MONTH) + 1) + - + c.get(c.DATE); /取得某个时间后n个月的相对应的一天 public String getNMonthAfterOneDay(String sDate, int n) Calendar c = switchStringToCalendar(sDate); c.add(c.MONTH, n); return + c.get(c.YEAR) + - + (c.get(c.MONTH) + 1) + - + c.get(c.DATE); /取得某个时间前n天,格式为yyyy-mm-dd public String getNDayBeforeOneDate(String sDate, int n) Calendar c = switchStringToCalendar(sDate); c.add(c.DAY_OF_MONTH, -n); return + c.get(c.YEAR) + - + (c.get(c.MONTH) + 1) + - + c.get(c.DATE); /取得某个时间后n天,格式为yyyy-mm-dd public String getNDayAfterOneDate(String sDate, int n) Calendar c = switchStringToCalendar(sDate); c.add(c.DAY_OF_MONTH, n); return + c.get(c.YEAR) + - + (c.get(c.MONTH) + 1) + - + c.get(c.DATE); /判断系统当前时间是不是润年 public boolean isRunNian() java.util.Calendar rightNow = java.util.Calendar.getInstance(); int year = rightNow.get(rightNow.YEAR); if (0 = year % 4 & (year % 100 != 0 | year % 400 = 0) return true; else return false; public static void main(String args) DateTime a = new DateTime(); try System.out.println(a.getCurrentDate6(); System.out.println(a.getCurrentDate6(); catch(Exception e)System.err.println(); java操作日期比较麻烦,和ASP比就可以说是相当麻烦了。这里我把自己常用的几个操作日期相关的方法编译成一个工具类,之后就可以在工程里面直接调用这些方法了。窗体顶端程序代码:/*Createdon2005-6-28*MadeInGamVan*/packagecom.gamvan.tools;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Calendar;publicclassFormatDateTime/*日期类操作工具*authorGamVanby我容易么我*PoweredbyGamV*/publicstaticStringformatDateTime(Stringymd)/格式化当前时间java.text.SimpleDateFormatisNow=newjava.text.SimpleDateFormat(ymd);Stringnow=isNow.format(newjava.util.Date();returnnow;publicstaticStringformatDateTime(Stringymd,Stringdatetime)/格式化当前时间java.text.SimpleDateFormatisNow=newjava.text.SimpleDateFormat(ymd);Stringnow=;tryisNow.format(datetime);catch(Exceptione)e.printStackTrace();returnnow;/*比较当前日期和指定日期returnboolean*如果当前日期在指定日期之后返回true否则返回flase */publicstaticbooleandateCompare(Stringstr)booleanbea=false;SimpleDateFormatsdf_d=newSimpleDateFormat(yyyy-MM-dd);StringisDate=sdf_d.format(newjava.util.Date();java.util.Datedate1;java.util.Datedate0;trydate1=sdf_d.parse(str);date0=sdf_d.parse(isDate);if(date0.after(date1)bea=true;catch(ParseExceptione)bea=false;returnbea;/*比较当前月份和指定月份*如果当前月份在指定月份之后返回true否则返回flase*/publicstaticbooleanmonthCompare(Stringstr)booleanbea=false;SimpleDateFormatsdf_m=newSimpleDateFormat(yyyy-MM);StringisMonth=sdf_m.format(newjava.util.Date();java.util.Datedate1;java.util.Datedate0;trydate1=sdf_m.parse(str);date0=sdf_m.parse(isMonth);if(date0.after(date1)bea=true;catch(ParseExceptione)bea=false;returnbea;/*比较当前日期和指定日期returnboolean*如果当前日期在指定日期之后返回true否则返回flase*/publicstaticbooleansecondCompare(Stringstr)booleanbea=false;SimpleDateFormatsdf_d=newSimpleDateFormat(yyyy-MM-ddHH:mm:ss);StringisDate=sdf_d.format(newjava.util.Date();java.util.Datedate1;java.util.Datedate0;trydate1=sdf_d.parse(str);date0=sdf_d.parse(isDate);if(date0.after(date1)bea=true;catch(ParseExceptione)bea=false;returnbea;/*比较指定两日期如果str1晚于str2则returntrue;*paramstr1*paramstr2*return*/publicstaticbooleansecondCompare(Stringstr1,Stringstr2)booleanbea=false;SimpleDateFormatsdf_d=newSimpleDateFormat(yyyy-MM-ddHH:mm:ss);java.util.Datedate1;java.util.Datedate0;trydate1=sdf_d.parse(str1);date0=sdf_d.parse(str2);if(date0.after(date1)bea=true;catch(ParseExceptione)bea=false;returnbea;/*设置间隔数后返回时间*paramtype间隔类型秒或者天*param间隔数字比如1秒或者一天*return*/publicstaticStringdateAdd(Stringtype,inti)SimpleDateFormatdf=newSimpleDateFormat(yyyy-MM-ddHH:mm:ss);Stringstr=formatDateTime(yyyy-MM-ddHH:mm:ss);Calendarc=Calendar.getInstance();/当时的日期和时间if(type.equals(s)ints=c.get(Calendar.SECOND);s=s+i;c.set(Calendar.SECOND,s);str=df.format(c.getTime();elseif(type.equals(d)intd=c.get(Calendar.DAY_OF_MONTH);/取出“日”数d=d+i;c.set(Calendar.DAY_OF_MONTH,d);/将“日”数设置回去str=df.format(c.getTime();returnstr;/*testpublicstaticvoidmain(Stringargs)Strings1=FormatDateTime.formatDateTime(yyyy-MM-dd,2005-10-12);System.out.println(s1);*/窗体底端几个常见的关于日期的问题 作者:佚名 来源:InterNet 加入时间:2005-1-8 1.怎样计算两个时间之间的间隔?间隔=Date1.getTime()-Date2.getTime();得出来的是毫秒数.除1000是秒,再除60是分,再除60是小时.记住java标准库中所有时间类都以此为基础转化的,只是他写好了一些转化的方法给你用而已.但都离不开这个毫秒数为基础.2.t=Calendar.getInstance();m=t.get(t.MONTH)+1;这里为什么要加一?在java语言里,date的month的取值范围是:011,与人们的自然表达上相差1。3.系统时间与当前日期的区别?系统时间确切的说应该是System.currentTimeMillis();newDate()是当前日期,虽然它getTime();和System.currentTimeMillis();一样,但System.currentTimeMillis();4.如何计算两个日期的天数差值?longbeginTime=beginDate.getTime();longendTime2=endDate.getTime();longbetweenDays=(long)(endTime-beginTime)/(1000*60*60*24)+0.5);5.如何比较日期时间大小?第一种方法:useCalendarobjecttocomparejava.util.Calendarclasscanbeusedtocomparedate.Inordertodothis,youguyshouldparsethatstringintointyear,month,dayandconstructaCalendarobject,andthendocomparison.BelowisasampleStringTokenizertoken=newStringTokenizer(yourstring,-);intyear=Integer.parseInt(token.nextToken();intmonth=Integer.parseInt(token.nextToken();intday=Integer.parseInt(token.nextToken();Calendardate=Calendar.getInstance();date.set(year,month,day);Calendartoday=Calendar.getInstacne();if(date.after(today)/.第二种方法DatenowDate=newDate();/当前时间rlongnowTime=nowDate.getTime;longlastTime=userTime.longValue();/以前的时间rlongtime=nowTime-lastTime;/时间相减比较。if(time(long)60000)/1分钟另外可用以下参考用时间戳,Date.getTime()可以把当前时间改成时间戳,用CompareTo();用before(),after(),equals();6.格式化日期的问题r目的:第一次求日期java.text.SimpleDateFormatformatter=newjava.text.SimpleDateFormat(yyyy-MM-dd);Stringriqi=formatter.format(currentTime_1);第二次求时间rjava.text.DateFormatformat1=newjava.text.SimpleDateFormat(hhmmss);java.util.DatecurrentTime_2=newjava.util.Date();Stringshijian=format1.format(currentTime_2);得到的结果是2002-02-19和115324(11点53分24秒)实现:java.text.SimpleDateFormatformatter=newjava.text.SimpleDateFormat(yyyy-MM-dd-H-mm-ss);java.util.DatecurrentTime_1=newjava.util.Date();Stringstr_date=formatter.format(currentTime_1);StringTokenizertoken=newStringTokenizer(str_date,-);Stringyear=token.nextToken();Stringmonth=token.nextToken();Stringday=token.nextToken();Stringhh=token.nextToken();Stringmm=token.nextToken();Stringss=token.nextToken();Stringriqi=year+年+month+月+day+日+hh+点+mm+分+ss+秒;Stringnewdir=year+month+day;Stringwenjian=hh+mm+ss;7.怎么得到一个月的天数?java.util.Calendardate=java.util.Calendar.getInstance();System.out.println(date.getActualMaximum(date.DAY_OF_MONTH);示例程序代码在Java Web服务器上接受测试,该服务器配置了JDK 1.31。示例写得很标准,在Tomcat或者其他JSP Web服务器(JDK 1.2或者以后版本)上运行的效果几乎完全一样。 通过表单把日期传递给JSP页 Date(日期)参数是用户从3栏下拉列表中选出来的。用户提交表单之后,这些参数即被传送给处理页面。 在进行日历编程时不要忘了导入java.util.Calendar: % page import=java.util.Calendar % 处理页面的第1个任务是接收以下日期参数值:Date、Month和Year。 int curDate = 1; if(request.getParameter(curDate) != null) curDate = Integer.parseInt(request.getParameter(curDate); 注意页面参数被转换为int类型,马上我们就知道为什么要这么做了。 Calendar对象 我们的目标是创建和设置一个Calendar对象,用它进行日期计算。为此,我们首先需要实例化一个Calendar对象。 Calendar cal = Calendar.getInstance(); Calendar.getInstance()返回一个代表当前日期和时间的Calendar对象。 cal.clear(); cal.set(curYear, curMonth , curDate); clear()方法清空Calendar,这样我们才可能给该对象分配我们自己的日期值并为将来的计算做好准备。注意这些参数的顺序:首先是年,最后是日期。 从Calendar获取信息 以下是一组Calendar字段: 日期 DATE, DAY_OF_MONTH, DAY_OF_WEEK, DAY_OF_YEAR 时间 HOUR_OF_DAY, MINUTE, MILLISECOND, SECOND 周 WEEK_OF_MONTH, WEEK_OF_YEAR 年 YEAR 以上这些字段都可以通过Calendar的get()方法进行访问,结果返回一个整数。以下代码示例显示了以上过程。 一周内的日期 int dayOfWeek = cal.get(cal.DAY_OF_WEEK); out.print(brDay of Week: + dayOfWeek + br); 一月内的日期 int dayOfMonth = cal.get(cal.DAY_OF_MONTH); out.print(brDay of Month: + dayOfMonth + br); 定位特定的日期 为了找出一周内特定的某一天就必须访问DAY_OF_WEEK字段。该字段包含了范围从1到7的整数值,1代表星期一,2代表星期二,其余以次类推。 int dayOfWeek = cal.get(cal.DAY_OF_WEEK); 这里有个向用户显示日期的好方法,那就是声明一个包含一周内天数的数组。然后就可以很方便地显示各个日期了。只要采用DAY_OF_WEEK整数访问数组内的当前日期即可。 String weekdays = new String “”, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday; %=weekdayscal.get(cal.DAY_OF_WEEK)% 注意该数组的第1个元素为空。这是因为DAY_OF_WEEK字段值的范围是从1到7,而数组元素的引用范围则是从0到6。在数组开头加一个空元素就可以保证DAY_OF_WEEK字段的值和数组引用相匹配了。 找出周末 为了找出某天是否正好是星期天或者星期六可以编写以下代码: int day = cal.get(cal.DAY_OF_WE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年兰州外语职业学院单招职业适应性测试必刷测试卷附答案解析
- 2026年安徽国际商务职业学院单招职业倾向性考试题库及答案解析(夺冠系列)
- 2026年山东省济宁市单招职业适应性考试题库附答案解析
- 2026年山西同文职业技术学院单招职业倾向性考试题库附答案解析
- 房屋拆除移交协议书
- 房屋无偿移交协议书
- 房屋继承养老协议书
- 房屋翻新补偿协议书
- 房屋装修错误协议书
- 房屋证明协议书范本
- 编制园区规划合同范本
- 2025年及未来5年中国束腰巾市场深度分析及投资战略咨询报告
- 2025年大学《世界史-世界古代史》考试备考题库及答案解析
- 百年孤独读书分享
- 小学二年级上册书法教案及反思
- 职业规划评估与调整内容
- 地铁屏蔽门考试题和答案
- 故宫授权协议书
- 沪科版八年级数学知识点系统总结
- 气体买卖合同5篇
- 消风散课件教学课件
评论
0/150
提交评论