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

Timestamp 基础知识及时间大小比较

    博客分类:
  • J2EE
阅读更多

主要写一些与数据库连接时的日期处理,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)formatTimestamp)都行~

 

整理二:

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

String转化为Timestamp:

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中我们经常使用的setDategetDate的数据类型是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);    

分享到:
评论

相关推荐

    mysql基础知识和mysql优化整理

    2. 数据类型:MySQL支持多种数据类型,如整数类型(TINYINT、INT、BIGINT)、浮点类型(FLOAT、DOUBLE)、字符串类型(CHAR、VARCHAR、TEXT)、日期和时间类型(DATE、TIME、DATETIME、TIMESTAMP)等。 3. SQL语言...

    判断时间日期大小

    不过,对于基础的日期比较,JavaScript内置的功能已经足够使用。 总之,正确地比较和处理时间日期是每个开发者必备的技能,而JavaScript为我们提供了丰富的工具来实现这一目标。通过理解并运用这些知识,我们可以更...

    python 时间比较,很全面

    在Python编程语言中,时间处理是一项基础且重要的任务。它涉及到日期、时间和时间间隔的创建、比较、格式化以及各种操作。在这个主题中,我们将深入探讨Python中的时间比较及其相关概念,确保涵盖全面。 首先,...

    MySQL基础知识、操作

    总结来说,掌握MySQL基础知识和操作对于任何需要与数据库进行交互的开发人员或IT专业人员都至关重要。通过学习这些基础知识,他们可以有效地创建和管理数据库,执行复杂查询以及优化数据处理操作。

    MySql基础知识总结

    4. 日期和时间(Date and Time):如DATE、TIME、DATETIME、TIMESTAMP。 5. 布尔型(Boolean):BOOLEAN或TINYINT(1)表示。 三、SQL基础 1. SELECT语句:用于从数据库中查询数据,例如`SELECT * FROM table_name`。...

    DB2 基础:日期和时间的使用 (1).rar_db2

    本资料“DB2 基础:日期和时间的使用”将深入探讨在DB2中处理日期和时间类型的关键概念和操作,这对于任何进行数据库操作的开发者或管理员来说都是至关重要的。 在DB2中,日期和时间数据类型用于存储和操作各种时间...

    php比较两个绝对时间的大小

    通过掌握上述知识点,您可以更加灵活和准确地使用PHP来比较两个绝对时间的大小。在实际开发中,妥善处理时间相关的逻辑不仅有助于避免程序错误,同时也能提升程序的用户体验和数据处理的准确性。

    DB存储过程开发基础知识PPT课件.pptx

    根据提供的文件信息,我们可以深入探讨以下几个关键的知识点: ### 数据类型 在数据库系统中,数据类型是用来定义数据字段能够存储的特定类型的数据。...希望这些内容能帮助您更好地理解和掌握DB存储过程的基础知识。

    新手学习SQL必看,SQL基础知识.pdf

    例如,CHAR和VARCHAR分别用于存储定长和变长的字符串,SMALLINT、INTEGER和REAL表示不同大小的整数和浮点数,DECIMAL允许存储精确的小数,DATE、TIME和TIMESTAMP用于日期和时间的记录。 在创建表时,可以指定列的...

    SQLSERVER 2008 SSIS 基础文档 SSIS使用手册 共167页.pdf

    SQL Server 2008 SSIS 基础文档 SSIS 使用手册 本文档是 SQL Server 2008 SSIS 的基础文档,共 167 页,涵盖了 SSIS 的...本文档提供了 SSIS 的基础知识和应用实例,旨在帮助读者快速了解 SSIS 的使用方法和应用场景。

    Oracle2基础21.ppt

    Oracle 数据库基础知识点汇总 Oracle 数据库中有多种数据类型,包括 Character 数据类型、Long 数据类型、Varchar2 数据类型、Raw 和 Long Raw 数据类型、LOB 数据类型、Date 数据类型等。 1. Character 数据类型...

    Oracle2基础2.ppt

    了解并熟练掌握这些Oracle数据库的基础知识,对于数据库管理员、开发人员和数据分析师来说都是至关重要的,能够有效地设计、管理和操作数据库,确保数据的准确性和可靠性。在实际工作中,根据需求选择合适的数据类型...

    遍历目录,修改文件名称

    5. **按文件创建时间排序**:文件的创建时间通常是一个时间戳,可以将其转换为日期对象进行比较。在Python中,可以使用`datetime.fromtimestamp()`将时间戳转换为`datetime`对象,然后使用`sorted()`函数,结合...

    mysql优化及基础面试题

    MySQL 优化及基础面试题涉及的关键知识点主要包括慢查询日志、数据类型的选择、锁机制、事务处理以及数据库设计规范。 1. **慢查询日志**: - 慢查询日志是MySQL的一种功能,用于记录执行时间超过`long_query_time...

    SQLServer2005数据库基础及应用_数据库类

    本主题将深入探讨SQL Server 2005的基础知识及其在数据库类应用中的核心概念。 一、SQL Server 2005概述 SQL Server 2005在功能上进行了大幅度增强,提供了更高效的数据存储、检索和管理能力。它支持多种数据类型,...

    Oracle知识综合整理.docx

    Oracle数据库是企业级关系型数据库...以上内容涵盖了Oracle数据库的基础知识,包括SQL语法、数据类型、伪列、命名规则、表空间管理、用户管理和权限控制等方面,这些都是Oracle数据库管理员和开发人员必备的知识点。

    c++实现log文件写入

    总的来说,C++实现日志文件写入涉及到文件操作、时间处理、字符串格式化等基础知识。通过这个项目,你可以深入了解这些概念,并提升你的C++编程技能。在使用Visual Studio 2010进行开发时,可以充分利用其IDE特性,...

    MySql应用手册

    总结来说,MySQL应用手册是开发者和数据库管理员的重要参考资料,涵盖了从基础概念到高级特性的全面知识,对于学习和使用MySQL的人来说是一份宝贵的资源。通过深入理解和实践手册中的内容,能够有效地设计、维护和...

    NTP校时源码

    ### NTP校时源码分析 #### 一、概述 NTP(Network Time Protocol,网络...此外,对于NTP协议的理解和掌握也是实现高效稳定时间同步服务的基础。希望本文档能够帮助读者更好地理解NTP校时源码的工作原理及其应用实践。

    数据库重要知识点梳理

    了解数据库的分类、操作命令和基本知识是构建高效、稳定和可扩展应用程序的基础。随着技术的发展,数据库系统不断进化,为了满足不同的需求,开发者可以根据实际应用场景选择合适的数据库系统,并掌握相关的操作技能...

Global site tag (gtag.js) - Google Analytics