(转载)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
相关推荐
Java国际化(Internationalization)与时间处理是开发过程中两个重要的领域,尤其对于构建全球化应用程序来说,理解和掌握这些概念至关重要。国际化允许软件适应不同地区的语言、文化习惯和格式,而时间处理则涉及...
根据给定的信息,“Java语言程序设计”这一课程主要面向的是中国石油大学(北京)远程教育学院的学生们。从描述来看,这份资料似乎是一份学习指南或者是考试复习资料的一部分,旨在帮助学生们更好地掌握Java编程的...
### Java语言实用教程知识点梳理 #### 一、Java语言概览 - **程序与算法**: - **程序设计语言**:介绍程序设计语言的基本概念及其分类。 - **算法**:阐述算法的重要性,以及如何设计合理的算法来解决问题。 - ...
《Java语言程序设计》第六版基础篇是一本深入浅出的Java编程教程,它涵盖了Java编程的核心概念和技术,是初学者和进阶者都必备的参考书籍。这本书以清晰的逻辑和丰富的实例,帮助读者理解并掌握Java编程的精髓。 在...
在Java中,时间处理主要涉及到`java.util.Date`、`java.time`包(Java 8及以后版本)以及`java.text.SimpleDateFormat`等类。然而,当涉及时间计算或转换时,可能会遇到超出合理范围的情况,例如尝试创建一个超出24...
最后,Java 语言为 Internet 的分布式环境而设计,因为它处理 TC 等协议,使得 Java 程序可以在 Internet 上进行分布式计算。 Java 语言是一种简单易学、易用、健壮、跨平台、解释性和高性能的编程语言。它具有许多...
【自考本科 04748 Java语言程序设计 实践报告 示例】 Java语言程序设计是计算机科学领域中一门核心的课程,对于自考本科的学生来说,掌握Java编程能力至关重要。这个实践报告提供了深入理解Java编程的一个实例,...
Java语言程序设计是计算机科学与技术专业的重要课程之一,它主要教授如何使用Java语言进行软件开发。本资料《JAVA语言程序设计》期末考试试题及答案提供了全面的学习和复习指南,帮助学生理解和掌握Java编程的核心...
课程内容包括JAVA语言概述、基础、流程控制、方法、数组、面向对象、类的封装、多态与继承、接口和包、异常处理、输入输出、图形用户界面、APPLET程序和数据库编程等。教学要求分为了解、理解和掌握三个层次。 六、...
Java语言是一种广泛应用于互联网开发的高级编程语言,由Sun Microsystems(现已被Oracle收购)于1995年推出。它的设计目标是“一次编写,到处运行”,这得益于Java的跨平台特性,使得开发者可以在不同操作系统上编译...
在Java编程语言中,创建一个日历应用是一个常见的学习任务,它可以帮助初学者理解面向对象编程、日期时间处理以及GUI设计等核心概念。本实例通过介绍如何使用Java来编写一个日历程序,将帮助你深入理解这些关键知识...
【Java语言概述】 Java语言,由Sun Microsystems(后被甲骨文公司Oracle收购)于1995年推出,是一种广泛应用于互联网环境的面向对象的编程语言。它以其“一次编写,到处运行”的特性,即Write Once, Run Anywhere ...
Java语言规范定义了编程语言的各个方面,包括语法、类型系统、异常处理、类和对象、接口、包、数组、运算符、控制流、方法、变量等。例如,它规定了如何声明变量、编写方法、控制程序流程、处理异常以及实现多态性。...
Java语言入门(CHM)是一个为初学者准备的指南,旨在帮助他们掌握Java编程的基础知识。CHM(Compiled HTML Help)是一种常见的Windows平台上的帮助文件格式,它将一系列HTML页面组合成一个可搜索的文档,方便用户查找...
书籍通常会系统地介绍Java语言的基本概念、语法结构、面向对象编程、异常处理、集合框架、流式编程以及Java的新特性等。 在学习Java的过程中,了解和掌握其核心概念是非常重要的。例如: 1. 对象和类:Java是一种...
一、实验内容 选择一个调度算法,实现处理机调度。 二、实验目的 多道系统中,当就绪进程数大于处理机数时,须按照某种策略决定哪些进程优先占用处理机。... 2、设计按时间片轮转实现处理机调度的程序。
Java语言学习资料是一份专为初学者和进阶者准备的资源集合,涵盖了Java语言的基础概念、语法结构以及编程实践。这份资料由知名的计算机教育专家翁恺编著,以其深入浅出的讲解风格,帮助读者逐步掌握这门强大的面向...
5. **日期与时间API**:Java 8改进了日期和时间处理,引入了`java.time`包,提供了`LocalDate`、`LocalTime`、`LocalDateTime`等类,替代了过时的`java.util.Date`和`Calendar`,使得日期和时间的处理更为方便和精确...