`
seawavenews
  • 浏览: 230285 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

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

 
分享到:
评论

相关推荐

    java国际化&时间处理

    Java国际化(Internationalization)与时间处理是开发过程中两个重要的领域,尤其对于构建全球化应用程序来说,理解和掌握这些概念至关重要。国际化允许软件适应不同地区的语言、文化习惯和格式,而时间处理则涉及...

    Java语言程序设计

    根据给定的信息,“Java语言程序设计”这一课程主要面向的是中国石油大学(北京)远程教育学院的学生们。从描述来看,这份资料似乎是一份学习指南或者是考试复习资料的一部分,旨在帮助学生们更好地掌握Java编程的...

    Java语言实用教程

    ### Java语言实用教程知识点梳理 #### 一、Java语言概览 - **程序与算法**: - **程序设计语言**:介绍程序设计语言的基本概念及其分类。 - **算法**:阐述算法的重要性,以及如何设计合理的算法来解决问题。 - ...

    java语言程序设计 电子书

    《Java语言程序设计》第六版基础篇是一本深入浅出的Java编程教程,它涵盖了Java编程的核心概念和技术,是初学者和进阶者都必备的参考书籍。这本书以清晰的逻辑和丰富的实例,帮助读者理解并掌握Java编程的精髓。 在...

    java语言时间异常类

    在Java中,时间处理主要涉及到`java.util.Date`、`java.time`包(Java 8及以后版本)以及`java.text.SimpleDateFormat`等类。然而,当涉及时间计算或转换时,可能会遇到超出合理范围的情况,例如尝试创建一个超出24...

    java 语言的简单介绍

    最后,Java 语言为 Internet 的分布式环境而设计,因为它处理 TC 等协议,使得 Java 程序可以在 Internet 上进行分布式计算。 Java 语言是一种简单易学、易用、健壮、跨平台、解释性和高性能的编程语言。它具有许多...

    自考本科 04748 Java语言程序设计 实践报告 示例

    【自考本科 04748 Java语言程序设计 实践报告 示例】 Java语言程序设计是计算机科学领域中一门核心的课程,对于自考本科的学生来说,掌握Java编程能力至关重要。这个实践报告提供了深入理解Java编程的一个实例,...

    《JAVA语言程序设计》期末考试试题及答案_java期末考试_java_

    Java语言程序设计是计算机科学与技术专业的重要课程之一,它主要教授如何使用Java语言进行软件开发。本资料《JAVA语言程序设计》期末考试试题及答案提供了全面的学习和复习指南,帮助学生理解和掌握Java编程的核心...

    JAVA语言程序设计课程教学大纲.doc

    课程内容包括JAVA语言概述、基础、流程控制、方法、数组、面向对象、类的封装、多态与继承、接口和包、异常处理、输入输出、图形用户界面、APPLET程序和数据库编程等。教学要求分为了解、理解和掌握三个层次。 六、...

    Java语言 程序设计 ppt

    Java语言是一种广泛应用于互联网开发的高级编程语言,由Sun Microsystems(现已被Oracle收购)于1995年推出。它的设计目标是“一次编写,到处运行”,这得益于Java的跨平台特性,使得开发者可以在不同操作系统上编译...

    用java语言编写的日历

    在Java编程语言中,创建一个日历应用是一个常见的学习任务,它可以帮助初学者理解面向对象编程、日期时间处理以及GUI设计等核心概念。本实例通过介绍如何使用Java来编写一个日历程序,将帮助你深入理解这些关键知识...

    第1章 Java语言概述

    【Java语言概述】 Java语言,由Sun Microsystems(后被甲骨文公司Oracle收购)于1995年推出,是一种广泛应用于互联网环境的面向对象的编程语言。它以其“一次编写,到处运行”的特性,即Write Once, Run Anywhere ...

    Java语言规范和JVM规范官网文档

    Java语言规范定义了编程语言的各个方面,包括语法、类型系统、异常处理、类和对象、接口、包、数组、运算符、控制流、方法、变量等。例如,它规定了如何声明变量、编写方法、控制程序流程、处理异常以及实现多态性。...

    JAVA语言入门(CHM)

    Java语言入门(CHM)是一个为初学者准备的指南,旨在帮助他们掌握Java编程的基础知识。CHM(Compiled HTML Help)是一种常见的Windows平台上的帮助文件格式,它将一系列HTML页面组合成一个可搜索的文档,方便用户查找...

    java语言实现操作系统处理机调度

    一、实验内容 选择一个调度算法,实现处理机调度。 二、实验目的 多道系统中,当就绪进程数大于处理机数时,须按照某种策略决定哪些进程优先占用处理机。... 2、设计按时间片轮转实现处理机调度的程序。

    JAVA语言学习资料

    Java语言学习资料是一份专为初学者和进阶者准备的资源集合,涵盖了Java语言的基础概念、语法结构以及编程实践。这份资料由知名的计算机教育专家翁恺编著,以其深入浅出的讲解风格,帮助读者逐步掌握这门强大的面向...

    Java程序设计语言-第4版.pdf

    书籍通常会系统地介绍Java语言的基本概念、语法结构、面向对象编程、异常处理、集合框架、流式编程以及Java的新特性等。 在学习Java的过程中,了解和掌握其核心概念是非常重要的。例如: 1. 对象和类:Java是一种...

    java语言入门(适合初学者)

    标题“java语言入门(适合初学者)”暗示了本课程或文档主要针对那些没有编程背景或者对Java一无所知的新手。这个资源可能是为了帮助他们理解基本的编程概念,如变量、数据类型、控制结构(如if语句和循环)、函数,...

Global site tag (gtag.js) - Google Analytics