java语言能持续多久_(转载)java语言对时间的处理

(转载)java语言对时间的处理

1.处理数据库,有DATE Java.sql.Date 日期,

TIME Java.sql.Time 时戳,TIMESTAMP Java.sql.Timestamp 当日日期和时间,

对应的ResultSet的方法

DATE                          java.sql.Date                               java.sql.Date getDate()

TIME                           java.sql.Time                               java.sql.Time getTime()

TIMESTAMP              java.sql.Timestamp                   java.sql.Timestamp getTimestamp()

根据java2的规范要求使用Java.sql.Timestamp,这样不会失去精度详见(http://blogger.org.cn/blog/more.asp?name=hongrui&id=7557)。对于oracle数据库比较例外,可以用oracle.sql.TIMESTAMP

这和他的版本也有关系。注意,SQLserver中timestamp 对应的是 DateTime类型。使用spring的jdbc时,尽可能用Java.sql.Timestamp详见(http://blogger.org.cn/blog/more.asp?name=hongrui&id=9521)。

下面给个例子

public static java.sql.Timestamp getDBSysdate(Connection conn)

throws Exception {

Statement stmt = null;

ResultSet rs = null;

Timestamp sysTime = null;

try {

stmt = conn.createStatement();

rs = stmt.executeQuery("SELECT SYSDATE FROM DUAL");

if (rs.next()) {

sysTime = rs.getTimestamp("SYSDATE");

}

} catch (Exception e) {

} finally {

try {

if (rs != null) {

rs.close();

}

if (stmt != null) {

stmt.close();

}

} catch (Exception e) {

}

}

return sysTime;

}

最好的办法使用long存时间,使用Calendar 处理,就是表示日期时间不直观。2.字符串转化时间,注意不能判断时间输入是否正确,判断时间输入是否正确,请使用正则。try

{

String st="2005-13-32 12:00";

java.text.DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");

Date  starttime = df.parse(st);

System.out.println(starttime.toString());

}

catch(Exception ex)

{

}

不要搞混了try-catch的功能。只有程序或系统抛出了异常,try-catch才能捕获 ,得到Wed Feb 01 00:00:00 CST 2006

这样操作是错误的,Timestamp是java.util.Date,会得到java.lang.ClassCastException,你犯了向下转型的错误。

try

{

String st="2005-13-32 12:00";

java.text.DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");

Timestamp  starttime =(Timestamp) df.parse(st);

System.out.println(starttime.toString());

}

catch(Exception ex)

{

ex.printStackTrace();

}

应该使用

try {

String st = "2005-12-2 12:00:00";

Timestamp starttime = Timestamp.valueOf(st);

System.out.println(starttime.toString());

} catch (Exception ex) {

ex.printStackTrace();

}

import java.sql.*;

import java.util.*;

public class CreateTimestamp {

public static void main(String [] args) {

Calendar cal = Calendar.getInstance();

cal.set(Calendar.YEAR, 2000);

cal.set(Calendar.MONTH, Calendar.JANUARY);

cal.set(Calendar.DATE, 1);

cal.set(Calendar.HOUR_OF_DAY, 11);

cal.set(Calendar.MINUTE, 45);

cal.set(Calendar.SECOND, 30);

cal.set(Calendar.MILLISECOND, 0);

long millis = cal.getTime().getTime();

System.out.println("milliseconds in millis = " + millis);

java.sql.Timestamp ts = new java.sql.Timestamp(millis);

System.out.println("Timestamp ts before setting nanos = " + ts);

ts.setNanos(500);

System.out.println("Timestamp ts with nanos set = " + ts);

}

}

下面给出javadoc的方法

1. java.sql.Date.valueOf(java.lang.String)

public static Date valueOf(String s)

Converts a string in JDBC date escape format to a Date value.

Parameters:

s - a String object representing a date in in the format "yyyy-mm-dd"

Returns:

a java.sql.Date object representing the given date

Throws:

IllegalArgumentException - if the date given is not in the JDBC date escape format (yyyy-mm-dd)

2. java.sql.Time.valueOf(java.lang.String)

public static Time valueOf(String s)

Converts a string in JDBC time escape format to a Time value.

Parameters:

s - time in format "hh:mm:ss"

Returns:

a corresponding Time object

3. java.sql.Timestamp.valueOf(java.lang.String)

public static Timestamp valueOf(String s)

Converts a String object in JDBC timestamp escape format to a Timestamp value.

Parameters:

s - timestamp in format yyyy-mm-dd hh:mm:ss.fffffffff

Returns:

corresponding Timestamp value

Throws:

IllegalArgumentException - if the given argument does not have the format yyyy-mm-dd hh:mm:ss.fffffffff

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值