Java java.sql.Timestamp时间戳案例详解

java.sql.Timestamp(时间戳)

继承父类:java.util.Date

所有已实现的接口:Serializable, Cloneable, Comparable<Date> 

主要构造方法:Timestamp(long millis) 使用毫秒时间值构造 Timestamp 对象。

Timestamp允许 JDBC API 将该类标识为 SQL TIMESTAMP 值。它通过允许小数秒到纳秒级精度的规范来添加保存 SQLTIMESTAMP 小数秒值的能力。

Timestamp 也提供支持时间戳值的 JDBC 转义语法的格式化和解析操作的能力,主要用于写一些与数据库连接时的日期处理。

例如:

在 ResultSet中我们经常使用的setDate或getDate的数据类型是java.sql.Date,而在平时java程序中我们一般习惯使用 java.util.Date。

但是java.sql.Date 只存储日期数据不存储时间数据 ,这种符合规范的类型其实并没有把时分秒存进数据库,所以存取时就应该用Timestamp的setTimestamp()和

getTimestamp()。

整理一: String --> Timestamp: 

Timestamp转换为String可以直接.toString(),但有时候显示时是不需要小数位后面的毫秒值,需要借助DateFormat在转换为String时重新定义格式。

使用Timestamp的valueOf()方法, 

Timestamp time= new Timestamp(System.currentTimeMillis());//获取系统当前时间
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String timeStr = df.format(time);
time = Timestamp.valueOf(timeStr);
System.out.println(time);//2017-05-06 15:54:21.0

整理二: java.util.Date --> Timestamp

方式1: 使用Timestamp的构造方法

Date date = new Date();
Timestamp ts = new Timestamp(date.getTime());

方式2:

注意:父类不能直接向子类转化,需要借助中间的String,并且format的格式要与Timestamp的字符串类型格式相匹配

java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]

Date date = new Date();
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = sdf.format(date);
Timestamp ts = Timestamp.valueOf(dateStr); //2017-05-06 15:54:21.0

整理三:

通过构造方法创建Timestamp 对象,获取毫秒值有下面三种方法:

方法1:

System.currentTimeMillis(); 

方法2:

Calendar.getInstance().getTimeInMillis(); 

方法3: 

new Date().getTime();

测试证明:System.currentTimeMillis() 这种方式速度最快

Calendar.getInstance().getTimeInMillis() 这种方式速度最慢,因为Canlendar因为要处理时区问题会耗费很多的时间。

所以建议多使用第一种方式。

方法摘要 

boolean after(Timestamp ts) 

        指示此 Timestamp 对象是否晚于给定的 Timestamp 对象。 

boolean before(Timestamp ts) 

        指示此 Timestamp 对象是否早于给定的 Timestamp 对象。 

int compareTo(Date o) 

        将此 Timestamp 对象与给定的 Date(必须为 Timestamp 对象)相比较。 

int compareTo(Timestamp ts) 

        将此 Timestamp 对象与给定 Timestamp 对象相比较。 

boolean equals(Object ts) 

        测试此对象是否等于给定的 Timestamp 对象。 

boolean equals(Timestamp ts) 

        测试此 Timestamp 对象是否等于给定的 Timestamp 对象。 

int getNanos() 

        获取此 Timestamp 对象的 nanos 值。 

long getTime() 

        返回此 Timestamp 对象表示的自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。 

void setNanos(int n) 

        将此 Timestamp 对象的 nanos 字段设置为给定值。 

void setTime(long time) 

        设置此 Timestamp 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。 

String toString() 

        使用 JDBC 时间戳转义格式编排时间戳。 

static Timestamp valueOf(String s) 

        将使用 JDBC 时间戳转义格式的 String 对象转换为 Timestamp 值。 

实例代码:

tLotteryAnnouncement.setDateTime(new Timestamp(System.currentTimeMillis()));
if(StringUtils.isNotBlank(tIsusesKj.getOpenTime())){
    tLotteryAnnouncement.setOpenTime(Timestamp.valueOf(tIsusesKj.getOpenTime()));
}else{
    tLotteryAnnouncement.setOpenTime(new Timestamp(tIsusesKj.getModifyDate().getTime()));
}

到此这篇关于Java java.sql.Timestamp时间戳案例详解的文章就介绍到这了,更多相关Java java.sql.Timestamp时间戳内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 在Java中String和Date、Timestamp之间的转换

    一.String与Date(java.util.Date)互转   1.1 String -> Date String dateStr = "// ::"; Date date = new Date(); //注意format的格式要与日期String的格式相匹配 DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); try { date = sdf.parse(dateStr); Syst

  • Java8中LocalDateTime与时间戳timestamp的互相转换

    Java8 LocalDateTime与timestamp转换 将timestamp转为LocalDateTime public LocalDateTime timestamToDatetime(long timestamp){ Instant instant = Instant.ofEpochMilli(timestamp); return LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); } 将LocalDataTime转为t

  • Java里得到00:00:00格式的时分秒的Timestamp

    复制代码 代码如下: import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.TimeZone; public class Test { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); long t = System.

  • Java中Date,Calendar,Timestamp的区别以及相互转换与使用

    1 Java.util.Date包含年.月.日.时.分.秒信息. 复制代码 代码如下: // String转换为DateString dateStr="2013-8-13 23:23:23";String pattern="yyyy-MM-dd HH:mm:ss";DateFormate dateFormat=new SimpleDateFormat(pattern);Date date=dateFormat.parse(dateStr);date=dateForm

  • Java java.sql.Timestamp时间戳案例详解

    java.sql.Timestamp(时间戳) 继承父类:java.util.Date 所有已实现的接口:Serializable, Cloneable, Comparable<Date>  主要构造方法:Timestamp(long millis) 使用毫秒时间值构造 Timestamp 对象. Timestamp允许 JDBC API 将该类标识为 SQL TIMESTAMP 值.它通过允许小数秒到纳秒级精度的规范来添加保存 SQLTIMESTAMP 小数秒值的能力. Timestamp

  • Java获取当前时间戳案例详解

    获取当前时间戳 //方法 一 System.currentTimeMillis(); //方法 二 Calendar.getInstance().getTimeInMillis(); //方法 三 new Date().getTime(); 获取时间戳三种方法执行效率比较: import java.util.Calendar; import java.util.Date; public class TimeTest { private static long _TEN_THOUSAND=1000

  • java 异常捕获及处理案例详解

    目录 一.Java异常简介 二.Java异常的分类 三.异常的使用及执行流程 四.自定义异常 一.Java异常简介 什么是异常? 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止.在Java中即,Java在编译或运行或者运行过程中出现的错误. Java提供了更加优秀的解决办法:异常处理机制. 异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持

  • Java之Spring注解开发案例详解

    在Spring4之后,要使用注解开发,必须要保证aop的包导入了 使用注解需要导入context约束,增加注解的支持! <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&

  • Java sdk安装及配置案例详解

    1.安装Java SDK开发环境. 首先去官网下载Java SDK,http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html, 下载完成之后,开始安装. 点击下一步,安装完成. 2.配置Java SDK环境变量 单击"计算机-属性-高级系统设置",单击"环境变量".在"系统变量"栏下单击"新建",创建新的系统环境变量.

  • Java JConsole远程连接配置案例详解

    JConsole远程连接还是有一点坑的.这里记录一下配置过程,好记性不如烂笔头. 1.在远程机的tomcat的catalina.sh中加入配置: JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=192.168.202.121 -Dcom.sun.management.jmxremote" JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=12345"

  • Java System.getProperty()-获取系统参数案例详解

    因为所有在java.io中的类都是将相对路径名解释为起始于用户的当前工作目录,所以应该清楚当前的目录. 可以通过调用System.getProperty("user.dir"); 来获得. /** * java.version Java 运行时环境版本 java.vendor Java 运行时环境供应商 java.vendor.url Java 供应商的 URL java.vm.specification.version Java 虚拟机规范版本 java.vm.specificati

  • Java jvm中Code Cache案例详解

    Code Cache JVM生成的native code存放的内存空间称之为Code Cache:JIT编译.JNI等都会编译代码到native code,其中JIT生成的native code占用了Code Cache的绝大部分空间 相关参数 Codecache Size Options -XX:InitialCodeCacheSize 用于设置初始CodeCache大小 -XX:ReservedCodeCacheSize 用于设置Reserved code cache的最大大小,通常默认是2

  • Java Date类的使用案例详解

    Date类表示特定的瞬间,精确到毫秒. 有2种方法可以创建Date对象(这里不考虑已过时的构造函数) 1.public Date()--分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒). @Test public void test1() { Date date = new Date(); System.out.println(date); } Sun Oct 23 22:39:14 CST 2016 2.public Date(long date)--根据给定的毫秒值创建日

  • Java BigDecimal中divide方法案例详解

    1.首先说一下用法,BigDecimal中的divide主要就是用来做除法的运算.其中有这么一个方法. public BigDecimal divide(BigDecimal divisor,int scale, int roundingMode) 第一个参数是除数,第二个参数代表保留几位小数,第三个代表的是使用的模式. BigDecimal.ROUND_DOWN:直接省略多余的小数,比如1.28如果保留1位小数,得到的就是1.2 BigDecimal.ROUND_UP:直接进位,比如1.21如

随机推荐