您的位置:首页 > 编程语言 > Java开发

Java操作日期和时间的文档集锦

2015-05-13 21:03 309 查看
Java中对日期和时间的操作文档集锦

Java中对日期和时间的操作文档集锦

目录:JAVA中的时间操作...1数据库查询问题...5日期格式、日期的解析和日期的计算...7在java中怎样利用时间间隔计算日期...17关于JAVA中时间操作的两个例子..19Date实用例程...22

JAVA中的时间操作

选择自leshui的Blog经常看见jsp版里有人问时间操作的问题,这些问题一般包括:取当前时间,把一个指定的字符串时间转化成时间类型,求两个时间之间的天数,求一段时间以前的时间,求一段时间以后的时间,在这里就把这些问题汇总一下。<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.text.*"%><%@pageimport="java.util.*"%><%//字符串转化成时间类型(字符串可以是任意类型,只要和SimpleDateFormat中的格式一致即可)java.text.SimpleDateFormatsdf=newjava.text.SimpleDateFormat("M/dd/yyyyhh:mm:ssa",java.util.Locale.US);java.util.Dated=sdf.parse("5/13/200310:31:37AM");out.println(d);out.println("<br>");SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");StringmDateTime1=formatter.format(d);out.println(mDateTime1);out.println("<br>");out.println(d.getTime());out.println("<br>");//当前时间Calendarcal=Calendar.getInstance();//SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-ddHH:mm:ssGEDFwWaEF");StringmDateTime=formatter.format(cal.getTime());out.println(mDateTime);out.println("<br>");//1年前日期java.util.DatemyDate=newjava.util.Date();longmyTime=(myDate.getTime()/1000)-60*60*24*365;myDate.setTime(myTime*1000);StringmDate=formatter.format(myDate);out.println(mDate);out.println("<br>");//明天日期myDate=newjava.util.Date();myTime=(myDate.getTime()/1000)+60*60*24;myDate.setTime(myTime*1000);mDate=formatter.format(myDate);out.println(mDate);out.println("<br>");//两个时间之间的天数SimpleDateFormatmyFormatter=newSimpleDateFormat("yyyy-MM-dd");java.util.Datedate=myFormatter.parse("2003-05-1");java.util.Datemydate=myFormatter.parse("1899-12-30");longday=(date.getTime()-mydate.getTime())/(24*60*60*1000);out.println(day);out.println("<br>");//加半小时SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");java.util.Datedate1=format.parse("2002-02-2823:16:00");longTime=(date1.getTime()/1000)+60*30;date1.setTime(Time*1000);Stringmydate1=formatter.format(date1);out.println(mydate1);out.println("<br>");//年月周求日期SimpleDateFormatformatter2=newSimpleDateFormat("yyyy-MMFE");java.util.Datedate2=formatter2.parse("2003-055星期五");SimpleDateFormatformatter3=newSimpleDateFormat("yyyy-MM-dd");Stringmydate2=formatter3.format(date2);out.println(mydate2);out.println("<br>");//求是星期几mydate=myFormatter.parse("2001-1-1");SimpleDateFormatformatter4=newSimpleDateFormat("E");Stringmydate3=formatter4.format(mydate);out.println(mydate3);out.println("<br>");%>作者Bloghttp://blog.csdn.net/leshui/happyegg(2003-09-06)其实求几天几月几年前/后的方法,应该用Calendar类比较好的。
Calendarcal=Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MONTH,1);
cal.add(Calendar.YEAR,2000);
date=cal.getTime();

数据库查询问题

作  者:xinfudepangbian()我想查询指定时间段的数据比如2006-4-4到2006-7-7的数据日期是number可数据库里是date,我用什么方法转换阿,谢谢了,SimpleDateFormatsf=newSimpleDateFormat("yyyy-MM-dd");java.util.Datedt1=sf.parse("2005-11-11");java.sql.Dateqishiriqi=newjava.sql.Date(dt1.getTime());java.util.Datedt2=sf.parse("2006-07-14");java.sql.Datezhongzhiriqi=newjava.sql.Date(dt2.getTime());源码发上大家帮我看看qishiriqi和zhongzhiriqi入库比较的--Calendarcals=Calendar.getInstance();cals.set(Calendar.YEAR,年);cals.set(Calenar.MONTH,月);cals.set(Calenar.DAY_OF_MONTH,日);StringsecondDate=(newTimestamp(cals.getTimeInMillis())).toString();然后把firstDate和secondDate传到SQL语句中,执行它--Stringsql="select*fromTM_BUS_SPECIALwhereLINE_NO='"+request.getParameter("RiZhi_line_no")+"'"+"andCREATE_TIMEbetween'"+qishiriqi+"'"+"and'"+zhongzhiriqi+"'";这样传日期和你用字符串传日期是一个效果,sql.Date被转成字符串了可以使用PreparedStatement,之前的日期转换仍然可用Stringsql="select*fromTM_BUS_SPECIALwhereLINE_NO=?andCREATE_TIMEbetween?and?";PreparedStatementpst=conn.preparedStatement(sql);pst.setString(1,request.getParameter("RiZhi_line_no"));pst.setDate(2,qishiriqi);pst.setDate(3,zhongzhiriqi);ResultSetrs=pst.executeQuery();1.parse要抛异常try{java.util.Datedt1=sf.parse("2005-11-11");}catch(ParseExceptione){}2.在(between'"+qishiriqi+"'"+"and'"+zhongzhiriqi)里又把日期型以字串型传给了SQL这里就不要再用字串了直接between"+qishiriqi+"and"+zhongzhiriqi就可以了try{java.util.Datedt1=sf.parse("2005-11-11");}catch(ParseExceptione){}2.在(between'"+qishiriqi+"'"+"and'"+zhongzhiriqi)里又把日期型以字串型传给了SQL这里就不要再用字串了直接between"+qishiriqi+"and"+zhongzhiriqi就可以了没抛异常而且是以字串传的改了就可以了如果是oracle,就用下面这一句:Stringsql="select*fromTM_BUS_SPECIALwhereLINE_NO='"+request.getParameter("RiZhi_line_no")+"'"+"andCREATE_TIMEbetweento_date('"+qishiriqi+"','yyyy-mm-dd')andto_date('"+zhongzhiriqi+"','yyyy-mm-dd')'";其中qishiriqi,zhongzhiriqi是形如yyyy-mm-dd的日期字符串,如"2006-07-29"

日期格式、日期的解析和日期的计算

Friday,23.June2006,04:45:48Java语言的Calendar(日历),Date(日期),和DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分.日期是商业逻辑计算一个关键的部分.所有的开发者都应该能够计算未来的日期,定制日期的显示格式,并将文本数据解析成日期对象.我们写了两篇文章,这是第一篇,我们将大概的学习日期,日期格式,日期的解析和日期的计算.

我们将讨论下面的类:

1、具体类(和抽象类相对)java.util.Date
2、抽象类java.text.DateFormat和它的一个具体子类,java.text.SimpleDateFormat
3、抽象类java.util.Calendar和它的一个具体子类,java.util.GregorianCalendar

具体类可以被实例化,但是抽象类却不能.你首先必须实现抽象类的一个具体子类.

Date类从Java开发包(JDK)1.0就开始进化,当时它只包含了几个取得或者设置一个日期数据的各个部分的方法,比如说月,日,和年.这些方法现在遭到了批评并且已经被转移到了Calendar类里去了,我们将在本文中进一步讨论它.这种改进旨在更好的处理日期数据的国际化格式.就象在JDK1.1中一样,Date类实际上只是一个包裹类,它包含的是一个长整型数据,表示的是从GMT(格林尼治标准时间)1970年,1月1日00:00:00这一刻之前或者是之后经历的毫秒数.

一、创建一个日期对象

让我们看一个使用系统的当前日期和时间创建一个日期对象并返回一个长整数的简单例子.这个时间通常被称为Java虚拟机(JVM)主机环境的系统时间.
importjava.util.Date;
publicclassDateExample1{
publicstaticvoidmain(String[]args){
//Getthesystemdate/time
Datedate=newDate();
System.out.println(date.getTime());
}
}


在星期六,2001年9月29日,下午大约是6:50的样子,上面的例子在系统输出设备上显示的结果是1001803809710.在这个例子中,值得注意的是我们使用了Date构造函数创建一个日期对象,这个构造函数没有接受任何参数.而这个构造函数在内部使用了System.currentTimeMillis()方法来从系统获取日期.

那么,现在我们已经知道了如何获取从1970年1月1日开始经历的毫秒数了.我们如何才能以一种用户明白的格式来显示这个日期呢?在这里类java.text.SimpleDateFormat和它的抽象基类java.text.DateFormat就派得上用场了.

二、日期数据?亩ㄖ聘袷?

假如我们希望定制日期数据的格式,比方星期六-9月-29日-2001年.下面的例子展示了如何完成这个工作:
importjava.text.SimpleDateFormat;
importjava.util.Date;
publicclassDateExample2{
publicstaticvoidmain(String[]args){
SimpleDateFormatbartDateFormat=
newSimpleDateFormat("EEEE-MMMM-dd-yyyy");
Datedate=newDate();
System.out.println(bartDateFormat.format(date));
}
}


只要通过向SimpleDateFormat的构造函数传递格式字符串"EEE-MMMM-dd-yyyy",我们就能够指明自己想要的格式.你应该可以看见,格式字符串中的ASCII字符告诉格式化函数下面显示日期数据的哪一个部分.EEEE是星期,MMMM是月,dd是日,yyyy是年.字符的个数决定了日期是如何格式化的.传递"EE-MM-dd-yy"会显示Sat-09-29-01.请察看Sun公司的Web站点获取日期格式化选项的完整的指示.

三、将文本数据解析成日期对象

假设我们有一个文本字符串包含了一个格式化了的日期对象,而我们希望解析这个字符串并从文本日期数据创建一个日期对象.我们将再次以格式化字符串"MM-dd-yyyy"调用SimpleDateFormat类,但是这一次,我们使用格式化解析而不是生成一个文本日期数据.我们的例子,显示在下面,将解析文本字符串"9-29-2001"并创建一个值为001736000000的日期对象.

例子程序:
importjava.text.SimpleDateFormat;
importjava.util.Date;
publicclassDateExample3{
publicstaticvoidmain(String[]args){
//Createadateformatterthatcanparsedatesof
//theformMM-dd-yyyy.
SimpleDateFormatbartDateFormat=
newSimpleDateFormat("MM-dd-yyyy");
//Createastringcontainingatextdatetobeparsed.
StringdateStringToParse="9-29-2001";
try{
//Parsethetextversionofthedate.
//Wehavetoperformtheparsemethodina
//try-catchconstructincasedateStringToParse
//doesnotcontainadateintheformatweareexpecting.
Datedate=bartDateFormat.parse(dateStringToParse);
//Nowsendtheparseddateasalongvalue
//tothesystemoutput.
System.out.println(date.getTime());
}
catch(Exceptionex){
System.out.println(ex.getMessage());
}
}
}


五、使用标准的日期格式化过程

既然我们已经可以生成和解析定制的日期格式了,让我们来看一看如何使用内建的格式化过程.方法DateFormat.getDateTimeInstance()让我们得以用几种不同的方法获得标准的日期格式化过程.在下面的例子中,我们获取了四个内建的日期格式化过程.它们包括一个短的,中等的,长的,和完整的日期格式.
importjava.text.DateFormat;
importjava.util.Date;
publicclassDateExample4{
publicstaticvoidmain(String[]args){
Datedate=newDate();
DateFormatshortDateFormat=
DateFormat.getDateTimeInstance(
DateFormat.SHORT,
DateFormat.SHORT);
DateFormatmediumDateFormat=
DateFormat.getDateTimeInstance(
DateFormat.MEDIUM,
DateFormat.MEDIUM);
DateFormatlongDateFormat=
DateFormat.getDateTimeInstance(
DateFormat.LONG,
DateFormat.LONG);
DateFormatfullDateFormat=
DateFormat.getDateTimeInstance(
DateFormat.FULL,
DateFormat.FULL);
System.out.println(shortDateFormat.format(date));
System.out.println(mediumDateFormat.format(date));
System.out.println(longDateFormat.format(date));
System.out.println(fullDateFormat.format(date));
}
}


注意我们在对getDateTimeInstance的每次调用中都传递了两个值.第一个参数是日期风格,而第二个参数是时间风格.它们都是基本数据类型int(整型).考虑到可读性,我们使用了DateFormat类提供的常量:SHORT,MEDIUM,LONG,和FULL.要知道获取时间和日期格式化过程的更多的方法和选项,请看Sun公司Web站点上的解释.

运行我们的例子程序的时候,它将向标准输出设备输出下面的内容:
9/29/018:44PM
Sep29,20018:44:45PM
September29,20018:44:45PMEDT
Saturday,September29,20018:44:45PMEDT

六、Calendar类

我们现在已经能够格式化并创建一个日期对象了,但是我们如何才能设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟?我们又如何在日期的这些部分加上或者减去值呢?答案是使用Calendar类.就如我们前面提到的那样,Calendar类中的方法替代了Date类中被人唾骂的方法.

假设你想要设置,获取,和操纵一个日期对象的各个部分,比方一个月的一天或者是一个星期的一天.为了演示这个过程,我们将使用具体的子类java.util.GregorianCalendar.考虑下面的例子,它计算得到下面的第十个星期五是13号.
importjava.util.GregorianCalendar;
importjava.util.Date;
importjava.text.DateFormat;
publicclassDateExample5{
publicstaticvoidmain(String[]args){
DateFormatdateFormat=
DateFormat.getDateInstance(DateFormat.FULL);
//CreateourGregorianCalendar.
GregorianCalendarcal=newGregorianCalendar();
//Setthedateandtimeofourcalendar
//tothesystem&sdateandtime
cal.setTime(newDate());
System.out.println("SystemDate:"+
dateFormat.format(cal.getTime()));
//SetthedayofweektoFRIDAY
cal.set(GregorianCalendar.DAY_OF_WEEK,
GregorianCalendar.FRIDAY);
System.out.println("AfterSettingDayofWeektoFriday:"+
dateFormat.format(cal.getTime()));
intfriday13Counter=0;
while(friday13Counter<=10){
//GotothenextFridaybyadding7days.
cal.add(GregorianCalendar.DAY_OF_MONTH,7);
//Ifthedayofmonthis13wehave
//anotherFridaythe13th.
if(cal.get(GregorianCalendar.DAY_OF_MONTH)==13){
friday13Counter++;
System.out.println(dateFormat.format(cal.getTime()));
}
}
}
}


在这个例子中我们作了有趣的函数调用:
cal.set(GregorianCalendar.DAY_OF_WEEK,
GregorianCalendar.FRIDAY);

和:
cal.add(GregorianCalendar.DAY_OF_MONTH,7);

set方法能够让我们通过简单的设置星期中的哪一天这个域来将我们的时间调整为星期五.注意到这里我们使用了常量DAY_OF_WEEK和FRIDAY来增强代码的可读性.add方法让我们能够在日期上加上数值.润年的所有复杂的计算都由这个方法自动处理.

我们这个例子的输出结果是:
SystemDate:Saturday,September29,2001
当我们将它设置成星期五以后就成了:Friday,September28,2001
Friday,September13,2002
Friday,December13,2002
Friday,June13,2003
Friday,February13,2004
Friday,August13,2004
Friday,May13,2005
Friday,January13,2006
Friday,October13,2006
Friday,April13,2007
Friday,July13,2007
Friday,June13,2008
七、时间掌握在你的手里
有了这些Date和Calendar类的例子,你应该能够使用java.util.Date,java.text.SimpleDateFormat,和java.util.GregorianCalendar创建许多方法了.
在下面的文章中,我们将讨论更高级的Date和Calendar类的使用技巧,包括时区和国际化的格式.我们还会考察两个日期类java.sql.Date和java.util.Date之间的区别.原文地址:http://my.opera.com/ukinglli/blog/show.dml/311137

在java中怎样利用时间间隔计算日期

Wednesday,28.June2006,05:44:01JAVA代码内容
DateD=newDate();
System.out.println(D);
D.setDate(D.getDate()-1);
System.out.println(D);


上面的例子就可以对日期进行计算,但是因为Date的getDay等方法都已经不推荐使用了,它有很大的局限性:存在1970年问题,无法计算1970年以前的日期,原因是它以English文化为中心,起始日前为Unix的诞生时间,1970年1月1日。推荐使用Calendar类,它可以表示任何历法的日期。所以在日期需要计算的时候通常会选用java.util.Calendar。
下面是一个取某个日期前一天的例子,用到了java.text.SimpleDateFormat,仅仅是为了控制输出格式,对日期计算没有实际意义。
代码内容
SimpleDateFormatdf=newSimpleDateFormat("yyyy-MM-dd");
Calendarc=Calendar.getInstance();//当时的日期和时间
System.out.println(df.format(c.getTime()));
intd=c.get(Calendar.DAY_OF_MONTH);//取出“日”数
--d;//将“日”减一,即得到前一天
c.set(Calendar.DAY_OF_MONTH,d);//将“日”数设置回去
System.out.println(df.format(c.getTime()));
c.set(Calendar.DAY_OF_MONTH,0);//如果当前日期是1日的情况会怎么样?
//这里演示了这种情况(这里情况下1-1=0所以直接赋0值了)
System.out.println(df.format(c.getTime()));//这里打印了上个月的最后一天。

以下展示Calendar类更多用法
代码内容
<%
Calendarnow=Calendar.getInstance();
intyear=now.get(Calendar.YEAR);
intmon=now.get(Calendar.MONTH);
intday=now.get(Calendar.DAY_OF_MONTH);
inthh=now.get(Calendar.HOUR);
intmm=now.get(Calendar.MINUTE);
intss=now.get(Calendar.SECOND);
out.print(year+"-"+mon+"-"+day+""+hh+":"+mm+":"+ss);
%>


上面打印出的日期根式是2005-01-0112:24:20http://my.opera.com/ukinglli/blog/show.dml/320287

关于JAVA中时间操作的两个例子

packagedateandtime;importjava.sql.Time;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.Locale;publicclassSqlDateAndUtilDate{publicstaticvoidmain(String[]args)throwsParseException{java.sql.DatesqlDate=null;DateutilDate=null;utilDate=newDate(System.currentTimeMillis());System.out.println("utileDate="+utilDate);sqlDate=newjava.sql.Date(System.currentTimeMillis());System.out.println("sqlDate="+sqlDate);System.out.println("sqlDateConvertoUtilDate="+((Date)sqlDate));TimesqlTime=newjava.sql.Time(utilDate.getTime());System.out.println("sqlTime="+sqlTime);java.sql.TimestampsqlTimestamp=newjava.sql.Timestamp(utilDate.getTime());System.out.println("sqlTimestamp="+sqlTimestamp);StringdataTime="3/Jun/200502:12:10AM";SimpleDateFormatformat=newSimpleDateFormat("dd/MMM/yyyyhh:mm:ssa",Locale.ENGLISH);Datedate=format.parse(dataTime);System.out.println(date);/*format=newSimpleDateFormat("yyyy-MMM-ddhh:mm:ss",Locale.ENGLISH);*/format.applyPattern("yyyy-MMM-ddhh:mm:ss");StringdateString="2005-Aug-0411:06:00";date=format.parse(dateString);System.out.println(date);}}packagedateandtime;//日期和时间处理示例importjava.util.*;importjava.text.SimpleDateFormat;importjava.sql.Date;importjava.sql.Time;importjava.sql.Timestamp;publicclassTestDateTime{publicstaticvoidmain(String[]argv){longnCurrentTime=System.currentTimeMillis();java.util.DateutilDate=newjava.util.Date(nCurrentTime);//以下是用于数据库操作的日期和时间类java.sql.DatesqlDate=newjava.sql.Date(utilDate.getTime());//java.util.Date和java.sql.Date的转换java.sql.TimesqlTime=newjava.sql.Time(utilDate.getTime());java.sql.TimestampsqlTimestamp=newjava.sql.Timestamp(nCurrentTime);//Calendar用于获取指定的时间项(字段)Calendarcalendar=Calendar.getInstance();calendar.setTimeInMillis(nCurrentTime);intyear=calendar.get(Calendar.YEAR);intmonth=calendar.get(Calendar.MONTH)+1;//注意:返回的月份是基于0的!intday=calendar.get(Calendar.DAY_OF_MONTH);inthour=calendar.get(Calendar.HOUR_OF_DAY);intminute=calendar.get(Calendar.MINUTE);intsecond=calendar.get(Calendar.SECOND);System.out.println("Currentdateis:"+year+"年"+month+"月"+day+"日");System.out.println("Currenttimeis:"+hour+"时"+minute+"分"+second+"秒");//SimpleDateFormat用于格式化日期和时间SimpleDateFormatdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");StringszDatetime1=df.format(utilDate);System.out.println("Currentdatetimeis:"+szDatetime1);//以下计算两个日期值之间相差的时间java.util.Datedate2=newjava.util.Date(nCurrentTime-24600*1000);longnMilliSeconds=utilDate.getTime()-date2.getTime();longnSeconds=nMilliSeconds/1000;//把毫秒换算成秒doublenDays=nSeconds/(24d*60d*60d);//把秒换算成天StringszDatetime2=df.format(date2);System.out.println("Timebetween"+szDatetime1+"and"+szDatetime2+"is"+nSeconds+"seconds("+nDays+"days)");}}

Date实用例程

作者:黄纯峰 来源:www.javajia.com 发布时间:MonMay2203:56:48CST2006日期的获取与转换
importjava.util.*;
importjava.text.*;
importorg.apache.log4j.*;
publicclassDateUtil{
privatestaticLoggerlog4j=Logger.getLogger(DateUtil.class);
publicDateUtil(){
}publicstaticDateparse(StringdateString,StringdateFormat){
try{
returnnewSimpleDateFormat(dateFormat).parse(dateString);
}
catch(ParseExceptionex){
returnnull;
}
}publicstaticStringformat(Calendarcalendar,StringdateFormat){
returnnewSimpleDateFormat(dateFormat).format(calendar.getTime());
}publicstaticStringformat(Datedate,StringdateFormat){
returnnewSimpleDateFormat(dateFormat).format(date);
}/**
*util.Date转换sql.Date
*@paramdate:java.util.Date
*@return返回java.sql.Date
*/
publicstaticjava.sql.DatesqlDate(Datedate){
java.sql.DatesqlDate=null;
sqlDate=newjava.sql.Date(date.getTime());
returnsqlDate;
}/**
*sql.Date转换util.Date
*@paramdate:java.sql.Date
*@return返回java.util.Date
*/
publicstaticjava.util.DateutilDate(java.sql.Datedate){
java.util.DateutilDate=null;
//utilDate=newjava.util.Date(date.getTime());
utilDate=parse(format(date),"yyyy-MM-ddHH:mm");
returnutilDate;
}/**
*java.sql.Date转换称String型
*@paramsqlDate
*@return
*/
publicstaticStringformat(java.sql.DatesqlDate){
returnsqlDate.toString();
}/**
*获取当前的系统日期
*@paramdateFormat
*@return返回字符串
*/
publicstaticStringnowDate(StringdateFormat){
returnnewSimpleDateFormat(dateFormat).format(newDate());
}/**
publicstaticDatetoDate(Calendarcalendar){
returncalendar==null?null:calendar.getTime();
}publicstaticCalendartoCalendar(Datedate){
Calendarcl=null;
if(date!=null){
cl.getInstance();
cl.setTime(date);
}
returncl;
}
*//**
*日期比较大小
*@paramdate1
*@paramdate2
*@return返回比较结果
*=0date1=date2;
*>0date1>date2;
*<0date1<date2;
*/
publicstaticintdateCompare(Datedate1,Datedate2){
returndate1.compareTo(date2);
}

/***
*日期型转换成字符串,固定日期格式为getDateFormat()
*///把一个java.sql.Date类型的时间转换成一个格式化的字符串,以为getDateFormat()时间格式
//出库时使用,从数据库中出来到界面,从数据库中读出时,调用。
publicstaticStringafterOpenCheck(java.sql.Timestampdate){
if(date==null)
return"";
log4j.debug("beginafterOpenCheck");
Stringret=format(date,getDateFormat());
if(ret.equals(getStrNullDate()))
ret="";
log4j.debug("endafterOpenCheck:date="+ret);
returnret;
}
//时间保存前的检验2004-05-0612:30
publicstaticjava.sql.TimestampbeforeSaveCheck(StringstrDate){
log4j.debug("时间保存前的检验");if(strDate==null){
returnnull;
}
if(strDate.length()==0){
returnnull;
}//utilDate=newjava.util.Date(date.getTime());
log4j.debug("时间保存前的检验的值:"+strDate);
Datetemp=parse(strDate,getDateFormat());java.sql.Timestampret=newjava.sql.Timestamp(temp.getTime());
log4j.debug("时间保存前的检验,返回值:"+ret);
//java.sql.Timestamptemp=newjava.sql.Timestamp();
returnret;
}
//返回系统默认空时间的表示时间
publicstaticStringgetNullSqlDateFormat(){
return"";
}
publicstaticStringgetStrNullDate(){
return"";
}//返回系统使用的默认时间格式
publicstaticStringgetDateFormat(){
return"yyyy-MM-ddHH:mm";
}
//返回系统使用的时间格式oraclesql语句
publicstaticStringgetSqlDateFormat(){
return"yyyy-MM-ddHH24:mi";
}//返回系统默认格式的当前时间
publicstaticStringnowDate(){
returnnowDate(getDateFormat());
}

/**
*获取某一日期的前后N天的日期
*@paramsDate
*@paramn
*@paramdateFormat
*@return
*/
publicstaticStringgetNewDateByDay(StringsDate,intn,StringdateFormat){
SimpleDateFormatdf=newSimpleDateFormat(dateFormat);
Calendarcalendar=Calendar.getInstance();
calendar.setTime(parse(sDate,dateFormat));
calendar.add(Calendar.DAY_OF_WEEK,n);
returndf.format(calendar.getTime());
}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: