`
javer
  • 浏览: 67720 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[转] JAVA 处理时间 - Date字段的转换方法

    博客分类:
  • java
阅读更多

1、如何将java.util.Date转化为java.sql.Date?
转化:

java.sql.Date sd;
java.util.Date ud;
//initialize the ud such as ud = new java.util.Date();

sd = new java.sql.Date(ud.getTime());

2、如果要插入到数据库并且相应的字段为Date类型
那么可以用PreparedStatement.setDate(int ,java.sql.Date)方法
其中的java.sql.Date可以用上面的方法得到

也可以用数据库提供TO_DATE函数
比如 现有 ud
TO_DATE(new SimpleDateFormat().format(ud,"yyyy-MM-dd HH:mm:ss"),
"YYYY-MM-DD HH24:MI:SS")
注意java中表示格式和数据库提供的格式的不同

一个实际的例子

sql="update tablename set timer=to_date('"+t+"','yyyymmddhh24miss') where ....."

这里的t为变量为类似:20051211131223

 

3、如何将"yyyy-mm-dd"格式的字符串转换为java.sql.Date

方法1

SimpleDateFormat bartDateFormat =  
       new SimpleDateFormat("yyyy-MM-dd");  
      String dateStringToParse = "2007-7-12";  
      try {  
       java.util.Date date = bartDateFormat.parse(dateStringToParse);  
       java.sql.Date sqlDate = new java.sql.Date(date.getTime());
       System.out.println(sqlDate.getTime());  
      }  
      catch (Exception ex) {  
       System.out.println(ex.getMessage());  
      }

------------------------------------------------------------
方法2
      String    strDate    =    "2002-08-09";   
      StringTokenizer    st    =    new    StringTokenizer(strDate,    "-");   
      java.sql.Date    date    =    new    java.sql.Date(Integer.parseInt(st.nextToken()),
               Integer.parseInt(st.nextToken()),
                Integer.parseInt(st.nextToken()));

 

java.util.Date和java.sql.Date的异同
java.sql.Date,java.sql.Time和java.sql.Timestamp三个都是java.util.Date的子类(包装类)。

       但是为什么java.sql.Date类型的值插入到数据库中Date字段中会发生数据截取呢?

       java.sql.Date 是为了配合SQL DATE而设置的数据类型。“规范化”的java.sql.Date只包含年月日信息,时分秒毫秒都会清零。格式类似:YYYY-MM-DD。当我们调用 ResultSet的getDate()方法来获得返回值时,java程序会参照"规范"的java.sql.Date来格式化数据库中的数值。因此,如果数据库中存在的非规范化部分的信息将会被劫取。

       在sun提供的ResultSet.java中这样对getDate进行注释的:
       Retrieves the of the designated column in the current row of this <code>ResultSet</code> object as a “java.sql.Date” object in the Java programming language.

        同理。如果我们把一个java.sql.Date值通过PrepareStatement的setDate方法存入数据库时,java程序会对传入的 java.sql.Date规范化,非规范化的部分将会被劫取。然而,我们java.sql.Date一般由java.util.Date转换过来,如: java.sql.Date sqlDate=new java.sql.Date(new java.util.Date().getTime()).
 显然,这样转换过来的java.sql.Date往往不是一个规范的java.sql.Date.要保存java.util.Date的精确值,
 我们需要利用java.sql.Timestamp.
Calendar

Calendar  calendar=Calendar.getInstance();  
//获得当前时间,声明时间变量  
int  year=calendar.get(Calendar.YEAR);  
//得到年
int  month=calendar.get(Calendar.MONTH);  
//得到月,但是,月份要加上1  
month=month+1;
int  date=calendar.get(Calendar.DATE);  
//获得日期  
String  today=""+year+"-"+month+"-"+date+"";

 

分享到:
评论

相关推荐

    java时间处理工具类--DateUtils

    * 根据日历的规则,为基准时间添加指定日历字段的单个时间单元 * * @param field * 日历字段, 使用Calendar类定义的日历字段常量 * @param up * 指定日历字段的值的滚动方向。true:向上滚动 / false:向...

    java-servlet-api.doc

    javax.servlet.Servlet接口定义了在Servlet的生命周期中特定时间以及特定顺序被调用的方法。 Servlet的解析和载入 Servlet引擎解析并载入一个Servlet,这个过程可以发生在引擎启动时,需要一个Servlet去响应请求时...

    java实现页面表格数据输出到excel

    String,Date,byte[](图片转成字节码)】 * @param out 与输出设备关联的流对象,可以将EXCEL文档导出到本地 文件或者网络中 * @param pattern 如果有时间数据,设定输出格式。默认为"yyy- MM-dd

    java常用工具类的使用

    而Date的其他构造方法和普通方法的API都不容易实现国际化,因此目前Date类的大多数方法都被标识为过时,表示更灵活的时间类请参考java.util.Calendar。 Date的输出结果是按照国际通用格式输出的,而中国更习惯于...

    在java控制台提取sql语句

    在java的控制台中看到的sql日志通常是如下的样子, Preparing: SELECT in (0,1) ORDER BY i.UPDATE_DATE_TIME DESC 2019-01-18 10:12:52,566 [DEBUG](org.apache.ibatis.logging.log4j.Log4jImpl.debug(Log4jImpl....

    ExtJs中处理后台传过来的date对象显示到页面上

    在使用ExtJs开发时会遇到这样的问题,后台传来一个java对象,里面有一个date类型的数据,现在要显示到页面上,我们该如何写才能不用将date转换成string的直接在页面上显示。下面解决办法:例如:在员工查询页面上,...

    gson-2.8.6.jar下载

    它可以将Java对象转换成JSON字符串,也可以将JSON字符串转换成Java对象。gson库简单易用,性能良好,所以很受欢迎,被广泛应用于Android和Java项目中。 gson的主要功能有: 1. 可以将Java对象转换成JSON字符串,也可以将...

    SqlMap自动生成小工具SqlMapAutoGen1.0

    1)获取字段名转换成数据库字段名 注意这里有潜规则,默认是这样处理的 createDateTime --&gt; CREATE_DATE_TIME car --&gt; CAR 2)根据字段的java类型获取jdbc类型 我只定义了以下规则 // javaType --&gt; jdbcType ...

    java8源码-wx_order:wx_order

    java8 源码 wx_order 日志 logback替代了log4j logback实现了Slf4j Api xml配置日志 filter过滤error 可以配置时间滚动策略 类注释和方法注释 /** * @Auther: ${USER} * @Date: ${DATE} ${HOUR}:${MINUTE} * @...

    mybatis如何使用Java8的日期LocalDate和LocalDateTime详解

    主要给大家介绍了关于mybatis如何使用Java8的日期LocalDate和LocalDateTime的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

    csv2arff:将CSV文件转换为ARFF格式

    ## ARFF的Java转换实用程序 用法很简单。 编译源代码并使用GUI。 在第一个字段中输入变量名称,然后在第二个字段中输入相应的数据类型。 允许的类型为NUMERIC,STRING,DATE和NOMINAL。 如果变量是分类变量(例如...

    Java 日期格式化 工具类

    Date和String的相互转换 得到指定日期所在周的星期几的日期 获取指定年的第几周的最后一天日期 获取指定年的第几周的第一天日期 获取指定日期为当前年的第几周 获取指定日期中的月份 获得当前月的第一天 获得当前月...

    kellerMapper.jar

    TypeCaster.java:类型转换,用于将 Java 中的数据类型转换成相应的 MySql 数据类型 util:工具类相关 Console.java:日志输出工具类,用于在控制台、日志文件中输出相关信息 ObjectUtils.java:Object 工具类,...

    AndroidPersianDateConverter:一个用于双向转换波斯日期到公历日期的JavaAndroid库

    Android库( scala库的Java端口,用于实现Android兼容性)用法通过这种方式转换您的日期: DateConverter dateConverter = new DateConverter()SimpleDate gregorianDate = new SimpleDate(2010,10,20);SimpleDate ...

    正则表达式

    \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,...

    yarrgs:带有一丝海风的 Java 命令行参数解析

    Yarrgs 将命令行参数解析为一个 Java 类,该类通过其字段和注释来描述预期的参数。 特征 转换和验证 int、boolean、Enum、String、Date 和 File 参数。 它还转换任何已验证字段的列表和映射。 允许在固定位置需要...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    日期类型 date 7字节 用于存储表中的日期和时间数据,取值范围是公元前4712年1月1日至公元9999年12月31日,7个字节分别表示世纪、年、月、日、时、分和秒 二进制数据类型 row 1~2000字节 可变长二进制数据,在具体...

    2009达内SQL学习笔记

    大多数SQL实现支持以下类型的函数: 文本处理, 算术运算, 日期和时间, 数值处理。 Null:空值 空值当成无穷大处理,所有空值参与的运算皆为空。 空值与空值并不相等,因为空值不能直接运算。 如:prod_price...

    DatasourceToPojoMapper

    鉴于数据库遵循大写-下划线命名约定,名称与 java 对象字段名称匹配,因此可以方便地将行从 JDBC 结果集转换为 java 对象。 IE 数据库表名和列名 USER_DETAIL.USER_ID USER_DETAIL.NUMERICAL_ID USER_DETAIL.FIRST_...

Global site tag (gtag.js) - Google Analytics