`
黑色幽默
  • 浏览: 55706 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

java日期处理(Timestamp)

阅读更多
主要写一些与数据库连接时的日期处理,pstmt.setDate()的类型是java.sql.Date类型,这种符合规范的类型其实并没有把时分秒存进数据库,所以存取时就应该用setTimestamp()或getTimestamp()。

整理一:

java.sql.Date 只存储日期数据不存储时间数据

// 会丢失时间数据

preparedStatement.setDate(1, new java.sql.Date(date.getTime()));

//可以这样来处理

preparedStatement.setTimestamp(1, new Timestamp(new java.util.Date().getTime()));



//想要得到完整的数据,包括日期和时间,可以这样

java.util.Date d = resultSet.getTimestamp(1);

//这样处理更合适一些,可以避免一些潜在Timestamp 问题

java.util.Date d = new java.util.Date(resultSet.getTimestamp(1).getTime());

   往数据库存储的时候可以接收 java.util.Date类型 再用getTime()方法得到代表那个Date对象的long值,再以这个long值构造一个Timestamp对象 存进数据库中。

       从存数据库里取的时候,可以先得到Timestamp用他的getTime()方法得到long值,再以这个long值构造一个 java.util.Date对象,这样就可以对这个Date对象操作了。比如说 new SimpleDateFormat("yyyyy-MM-dd HH:mm:ss").format(Date)或format(Timestamp)都行~



整理二:

用Timestamp来记录日期时间还是很方便的,但有时候显示的时候是不需要小数位后面的毫秒的,这样就需要在转换为String时重新定义格式。

Timestamp转化为String:

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

//定义格式,不显示毫秒

Timestamp now = new Timestamp(System.currentTimeMillis());

//获取系统当前时间

String str = df.format(now);        

String转化为Timestamp:

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");

String time = df.format(new Date());

Timestamp ts = Timestamp.valueOf(time);    



整理三:

在 ResultSet中我们经常使用的setDate或getDate的数据类型是java.sql.Date,而在平时java程序中我们一般习惯使用 java.util.Date。因此在DAO层我们经常会碰到这俩种数据类型的相互转换。

两者的关系

java.lang.Object

    |

    +---java.util.Date

            |

            +----java.sql.Date

相互转换

1. 使用getTime()函数

这两个类都提供了getTime()函数,用于返回对应的毫秒数(long类型)。利用这个函数可以实现转换:

    java.util.Date utilDate = new java.util.Date(sqlDate.getTime());   // sql -> util

    java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());   // util -> sql



2. 使用SimpleDateFormat类实现转换

SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。

SimpleDateFormat dateFormat = new SimpleDateFormate("yyyy-MM-dd HH:mm:ss");

java.util.Date utilDate = dateFormat.parse(sqlDate.toString());



3. 直接转换

由于java.sql.Date是从java.util.Date中继承过来的,所以可以直接用:

utilDate = sqlDate;



4. 另类获得日期的方法:

SimpleDateFormat sy=new SimpleDateFormat("yyyy");

SimpleDateFormat sm=new SimpleDateFormat("MM");

SimpleDateFormat sd=new SimpleDateFormat("dd");

String syear=sy.format(date);

String smon=sm.format(date);

String sday=sd.format(date);



ps:1. java.util.Date类中的getYear()要加上1900才可得到实际值,getMonth()则要加上1。

        2. 字符串到Date的转换: Date.valueOf(str),记得引包的时候要引sql的Date包,不是util的Date包

        3. 字符串到Timestamp 的转换Timestamp ts = Timestamp.valueOf(time);    
分享到:
评论

相关推荐

    DateUtils.java 日期处理相关工具类

    * 文件名:DateUtils.java 日期处理相关工具类 * 版本信息:V1.0 * 日期:2013-03-11 * Copyright BDVCD Corporation 2013 * 版权所有 http://www.bdvcd.com */ public class DateUtils { /**定义常量**/ ...

    DateUtil.java 时间日期处理工具类

    包含"yyyy-MM-dd"、"yyyy-MM-dd HH:mm:ss"、"yyyyMMdd"、"yyyyMMddHHmmss"、"yyyy-MM"、"yyyyMM"等时间格式的转换。 其中: 1.String转Timestamp ...5.Timestamp转String timestampToString(Timestamp ts)..... 等等

    JAVA时间处理类

    import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import org.apache....

    java时间处理工具类--DateUtils

    import java.sql.Timestamp; public class DateUtils { /** * 时间范围:年 */ public static final int YEAR = 1; /** * 时间范围:季度 */ public static final int QUARTER = 2; /** * 时间...

    java类 对时间进行各种处理

    该方法封装了对日期格式的一些转化,及String long Timestamp的转化,相信对你有用

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

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

    javascript中处理时间戳为日期格式的方法

    公共处理时间戳函数 代码如下: /** * 处理时间戳转换成日期格式 * @param {Object} obj 时间戳{10位的时间戳需要乘以1000;13位的时间戳不需要} * @return {TypeName} 返回日期格式 2013-09-16 */ function fullnum...

    Javashop开发规范V2.2

    datetime datetime TIMESTAMP datetime long bigint NUMBER bigint decimal decimal NUMBER(20,2) decimal 4 数据导出 String[] tables = new String[1]; tables[0] = "es_auth_action"; DBSolutionFactory....

    dynamic-add-date:一款基于MyBatis框架,可以对插入和更新Sql语句动态地添加日期列和对应值的插件

    dynamic-add-date Dynamic-add-date是基于Mybatis插件原理开发的可以动态在Insert和...自动处理原始Sql语句中已包含自定义日期列名 支持插入、更新、批量插入和批量更新Sql语句日期列的生成 支持INSERT INTO SELEC

    Oracle数据库SQL基本应用与介绍

    Oracle是能够安装在目前为止所有的计算机上并...日期型、期间型:date、timestamp、timestamp with time zone等。 Oracle数据库对象:cluster、数据库联接、触发器、外部程序库、索引、Java类、演算子、表、视图等等

    Burp-Timestamp-Editor:提供弹出菜单以在Burp消息编辑器中编辑Unix时间戳

    它可以处理以秒,毫秒和微秒为单位的时间戳(尽管UI会将其还原为0毫秒/微秒)。 “编辑时间戳”菜单仅在可编辑对象上可用,并且如果无法将所选值解析为时间戳,则该菜单将被禁用。如果可以解析,则菜单项上还会显示...

    datetime:ISO-8601标准格式的日期和时间功能

    日期时间解析和处理库 ISO-8601标准格式的日期和时间功能。 最初编写该库是为了允许灵活地解析一系列输入时间戳格式,并着重于ISO-8601时间戳。 解析产生Golang time.Time值。 建立此功能的愿望源于一个用Java编写...

    Oracle_Database_11g完全参考手册.part3/3

    10.7 使用TIMESTAMP数据类型 第11章 转换函数与变换函数 11.1 基本的转换函数 11.1.1 数据类型的自动转换 11.1.2 关于自动转换的注意事项 11.2 特殊的转换函数 11.3 变换函数 11.3.1 TRANSLATE 11.3.2 DECODE 11.4 ...

    Oracle_Database_11g完全参考手册.part2/3

    10.7 使用TIMESTAMP数据类型 第11章 转换函数与变换函数 11.1 基本的转换函数 11.1.1 数据类型的自动转换 11.1.2 关于自动转换的注意事项 11.2 特殊的转换函数 11.3 变换函数 11.3.1 TRANSLATE 11.3.2 DECODE 11.4 ...

    Oracle9i的init.ora参数中文说明

    说明: 与 NLS_TIME_TZ_FORMAT 相似, 其中的一对值指定 TIMESTAMP 数据类型的默认值, 该类型除存储 YEAR, MONTH 和 DAY 日期值, HOUR, MINUTE 和 SECOND 时间值, 还存储 TIMEZONE_HOUR 和 TIMEZONE_MINUTE。...

    MySQL5.1参考手册官方简体中文版

    11.3.1. DATETIME、DATE和TIMESTAMP类型 11.3.2. TIME类型 11.3.3. YEAR类型 11.3.4. Y2K事宜和日期类型 11.4. String类型 11.4.1. CHAR和VARCHAR类型 11.4.2. BINARY和VARBINARY类型 11.4.3. BLOB和TEXT类型 11.4.4...

    mysql官方中文参考手册

    11.3.1. DATETIME、DATE和TIMESTAMP类型 11.3.2. TIME类型 11.3.3. YEAR类型 11.3.4. Y2K事宜和日期类型 11.4. String类型 11.4.1. CHAR和VARCHAR类型 11.4.2. BINARY和VARBINARY类型 11.4.3. BLOB和TEXT类型 11.4.4...

    MYSQL中文手册

    11.3.1. DATETIME、DATE和TIMESTAMP类型 11.3.2. TIME类型 11.3.3. YEAR类型 11.3.4. Y2K事宜和日期类型 11.4. String类型 11.4.1. CHAR和VARCHAR类型 11.4.2. BINARY和VARBINARY类型 11.4.3. BLOB和TEXT类型...

    MySQL 5.1参考手册中文版

    11.3.1. DATETIME、DATE和TIMESTAMP类型 11.3.2. TIME类型 11.3.3. YEAR类型 11.3.4. Y2K事宜和日期类型 11.4. String类型 11.4.1. CHAR和VARCHAR类型 11.4.2. BINARY和VARBINARY类型 11.4.3. BLOB和TEXT类型 ...

Global site tag (gtag.js) - Google Analytics