java.util.date java.sql.date java.sql.timestamp

整理一:
这里的一片文章,我个人认为讲解的很详细,有对 java.sql.Date的使用还有困惑的请看。
java.sql.Date 只存储日期数据不存储时间数据
// 会丢失时间数据
preparedStatement.setDate(1, new java.sql.Date(date.getTime()));
//可以这样来处理
preparedStatement.setTimestamp(1, new java.sql.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
SimpleTimeFormat("yyyyy-MM-dd HH:mm:ss").format()等等
整理二:
用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-dd HH: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
从这个图中我们可以知道java.sql.Date是从java.util.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: java.util.Date类中的getYear()要加上1900才可得到实际值,getMonth()则要加上1
分享到:
相关推荐
Java 中的日期和时间处理是编程中非常重要的一方面,Date、String 和 Timestamp 是三种常用的日期和时间类型,本文将详细介绍它们之间的转换问题。 一、获取系统当前时间 在 Java 中,可以使用以下三种方法来获取...
- `java.util.Date`(Java的日期时间类)可以转换为`java.sql.Date`、`java.sql.Time`或`java.sql.Timestamp`,通过`SimpleDateFormat`进行格式化。 - `java.time.*`(Java 8引入的新日期时间API)的类如`...
### Java.util.Date与Java.sql.Date互转及字符串转换为日期时间格式 #### 一、Java.util.Date与Java.sql.Date的基本概念 在Java编程语言中,处理日期和时间时经常使用到`java.util.Date`和`java.sql.Date`这两个类...
在Java编程中,Timestamp和Date是两个常用的时间类型,前者是数据库类型,而后者是Java.util包中的类。由于它们的类型不同,因此在实际开发中,经常需要将Timestamp和Date类型相互转换。下面将详细介绍Timestamp和...
在Java 8及以后的版本中,`ZonedDateTime`类对应Oracle的Timestamp with Time Zone类型,它包含了日期、时间、时区信息。`ZonedDateTime`提供了许多方法来操作和格式化时间,如`withZoneSameInstant()`用于改变时区...
在Java编程语言中,时间戳(timestamp)与`java.util.Date`对象之间的转换是处理日期和时间数据时常见的需求。时间戳通常表示为从1970年1月1日午夜(UTC时间)到指定时刻之间的时间间隔,单位通常是毫秒。而`Date`类...
在Java中,Timestamp类型是java.sql包下的一个类,该类继承自java.util.Date类,用于表示数据库中的时间戳数据。Timestamp类型可以存储年、月、日、时、分、秒等信息,并且可以与数据库中的时间戳类型相匹配。 下面...
Java.util.Date与java.sql.Date的互转及字符串转换为日期时间格式 java.util.Date和java.sql.Date是Java中两个常用的日期时间类,分别属于不同的包。java.util.Date是Java标准库中的日期时间类,而java.sql.Date是...
在Java 8及更高版本中,引入了新的日期和时间API,其中包括 `LocalDate` 和 `LocalDateTime` 等类。这些类提供了更为简洁和强大的API来处理日期和时间。 ```java LocalDate today = LocalDate.now(); // 获取当前...
Date、String、Timestamp 是 Java 中三个常用的日期和时间类,它们之间的转换是 Java 开发中经常遇到的问题。在本文中,我们将详细介绍 Date、String、Timestamp 之间的转换方法。 Date 和 String 之间的转换 在 ...
类型转换 ( Java.util.date与java.sql.date区别和转换
总的来说,`TimeUtil_java-long型与Date型时间转换工具`这个压缩包很可能包含了一个方便的工具类,用于在`long`类型和`Date`类型之间进行转换,并提供了日期相关的辅助方法。在实际开发中,这样的工具类可以极大地...
在Java编程中,处理日期和时间是常见的任务,涉及到的主要类有`java.util.Date`、`java.sql.Timestamp`以及它们与字符串之间的转换。本文将详细介绍如何在Java中进行String、Date和Timestamp之间的相互转换。 一、...
在Java中,时间戳主要用来表示特定的瞬间,它是非常重要的数据类型,特别是在处理日期和时间相关的应用中。 #### 二、时间戳的定义与应用场景 **时间戳**的定义不仅局限于文件属性中的创建、修改、访问时间等,更...
Java中的Date、Calendar和Timestamp是处理日期和时间的三个核心类,它们各有特点,并且在不同的场景下有各自的优势。接下来我们将深入探讨这三个类的区别、转换方法及其在实际使用中的应用。 1. **java.util.Date**...
本篇文章将深入探讨Spring Boot如何进行时间类型的全局配置,以及MySQL数据库中时间字段的相关设置。 首先,Spring Boot默认使用Java 8中的`java.time`包,该包提供了更强大的日期时间API。为了全局配置日期和时间...
在Java中,将Long转换为Date的常见方法是使用`Date date = new Date(longValue)`构造函数,其中longValue是时间戳。相反,将Date转换为Long则可以使用`date.getTime()`方法。但是,这样的基础操作往往不能满足复杂的...
在Java编程语言中,Date类是处理日期和时间的核心组件,尤其在处理历史记录或计划未来事件时。本文将深入探讨Java中Date的使用,包括它的功能、常见操作以及与现代日期时间API(如Java 8引入的`java.time`包)的对比...
本文将深入探讨`java.util.Date`、`java.util.Calendar`、`java.sql.Date`、`java.sql.Time`和`java.sql.Timestamp`这五种日期时间类之间的区别和联系。 #### 1. `java.util.Date` `java.util.Date`类是Java中表示...
在 Java 中,timestamp 对应的数据类型是 java.sql.Timestamp。 varbinary 在 SQL Server 中,varbinary 是一个二进制类型,用于存储变长二进制数据。在 Java 中,varbinary 对应的数据类型是 byte 数组。 ...