Date dt = new SimpleDateFormat("yyyy-MM-dd H:m:s:S").parse(sTransactionDate))long lgTime = dt.getTime();
lgTime += 24*60*60*1000;//一在
lgTime += 60*60*1000;//一小时
。。Timestamp ts = new Timestamp(lgTime);
String newDate = new SimpleDateFormat("yyyy-MM-dd H:m:s:S").format(ts);
lgTime += 24*60*60*1000;//一在
lgTime += 60*60*1000;//一小时
。。Timestamp ts = new Timestamp(lgTime);
String newDate = new SimpleDateFormat("yyyy-MM-dd H:m:s:S").format(ts);
"15:07:40",然后在分别使用StringTokenizer取得year,month,day,
hour,minute,second,最后使用GregorianCalendar设置日期,大概代码如下:
String time="2002-3-20 15:07:40";
StringTokenizer t=new StringTokenizer(time," ");//空格分段
String time1=time.nextToken();//time1为"2002-3-20"
String time2=time.nextToken();//time2为"15:07:40"
再分别以"-"和":"为分隔符号取得个变量
StringTokenizer t2=new StringTokenizer(time1,"-");//"-"分段
String year=t2.nextToken();
String month=t2.nextToken();
String day=t2.nextToken();
....................其他类似,接下去无论你怎么处理该有的数据都
有了,就看你自己怎么喜欢了.我的方法比较复杂,可能有好得多,简单得
多的方法,这里只是提供一种解决办法而已.谢谢.
select to_char(t, 'yyyy-MM-dd HH24:mi:ss') from
(
select to_date('2002-3-20 15:07:40' , 'yyyy-MM-dd HH24:mi:ss') t from dual
)
(
select to_date('2002-3-20 15:07:40' , 'yyyy-MM-dd HH24:mi:ss') t from dual
)
(
select to_date('2002-3-20 15:07:40' , 'yyyy-MM-dd HH24:mi:ss') t from dual
)
java.util.Date d = new java.util.Date(t.getTime());
import java.io.*;
import java.util.*;
import java.util.Date;
import java.lang.*;
import java.text.*;
import java.sql.*;
public class test
{
public static void main(String args[])
{
String str = "2002-03-20 15:07:40";
try
{
SimpleDateFormat dt1 = new SimpleDateFormat("yyyy-MM-dd H:m:s");
Date dt = dt1.parse(str); long lgTime = dt.getTime()/(24*60*60*1000);
lgTime += 24*60*60*1000;
Timestamp ts = new Timestamp(lgTime);
String newDate = new SimpleDateFormat("yyyy-MM-dd H:m:s").format(ts);
System.out.println("st: " + newDate);
}
catch(Exception e )
{
System.out.println(e);
}
}
}
use Calendar.setTime(date) to get the Calendar
you can do everything with Calendar
再转化为GregorianCalendar,然后就可以方便地进行日期操作了
这一句有问题。parse()方法返回的是long型,怎么能赋给一个Date型呢?
long lgTime = dt.getTime()/(24*60*60*1000);
lgTime += 24*60*60*1000;
这也不对。即使dt是Date型的,那么dt.getTime()/(24*60*60*1000)得到的是dt距离1970-1-1 00:00:00的天数,那下面的那句又是做什么呢?
Anie的方法是简单且有效的,我前两天刚用到,就是这么做的。
import java.text.*;
public class data
{
public static void main(String[] args)
{
String ds = "2002-3-20 15:07:40";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
try
{
Date d = df.parse(ds);//将字符串解析成了Date型
System.out.println("日期" + d);
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(d);
//现在开始就可以用cal.add(int field, int amount)来加上任意的时间了
//另外,GregorianCalendar cal = new GregorianCalendar()就可以得到系统当前时间
}
catch(ParseException e)
{
System.out.println("Unable to parse " + ds);
}
}
}我特地运行了一遍,是可行的
另外,我不知道哪个函数能比较两个日期之间的时间,难道要取出field一个一个地比吗?请大家指教
import java.io.*;
import java.util.*;
import java.util.Date;
import java.text.*;
public class test
{
public static void main(String args[]){
try{
String str = "2002-3-20 15:07:40";
Date dt = new SimpleDateFormat("yyyy-MM-dd H:m:s").parse(str);
long lgTime = dt.getTime();
lgTime += 24*60*60*1000;//一在
lgTime += 60*60*1000;//一小时
java.sql.Timestamp ts = new java.sql.Timestamp(lgTime);
String newDate = new SimpleDateFormat("yyyy-MM-dd H:m:s").format(ts);
System.out.println("st: " + newDate);
} catch(Exception ee ) {
ee.printStackTrace();
}
}
}