转自:https://www.xuebuyuan.com/1479399.html

在开发web应用中,针对不同的数据库日期类型,我们需要在我们的程序中对日期类型做各种不同的转换。若对应数据库数据是oracle的Date类型,即只需要年月日的,可以选择使用java.sql.Date类型,若对应的是MSsqlserver数据库的DateTime类型。

既需要年月日时分秒的,选择java.sql.Timestamp类型。你可以使用dateFormat定义时间日期的格式,转一个字符串即可。

package personal.jessica;
import java.util.Date;
import java.util.Calendar;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Locale;
class Datetest{
 /**
  *method 将字符串类型的日期转换为一个timestamp(时间戳记java.sql.Timestamp)
  *@param dateString 需要转换为timestamp的字符串
  *@return dataTime timestamp
  */
 public final static java.sql.Timestamp string2Time(String dateString) 
  throws java.text.ParseException {
     DateFormat dateFormat;
    dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS", Locale.ENGLISH);//设定格式
    //dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH);
    dateFormat.setLenient(false);
    java.util.Date timeDate = dateFormat.parse(dateString);//util类型

//Timestamp类型,timeDate.getTime()返回一个long型
    java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());
    return dateTime;
 }
 /**
  *method 将字符串类型的日期转换为一个Date(java.sql.Date)
  *@param dateString 需要转换为Date的字符串
  *@return dataTime Date
  */
 public final static java.sql.Date string2Date(String dateString)
  throws java.lang.Exception {
    DateFormat dateFormat;
    dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
    dateFormat.setLenient(false);
    java.util.Date timeDate = dateFormat.parse(dateString);//util类型
    java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());//sql类型
    return dateTime;
 }
 
 public static void main(String[] args){
    Date da = new Date();
    //注意:这个地方da.getTime()得到的是一个long型的值
    System.out.println(da.getTime());
  
    //由日期date转换为timestamp
  
    //第一种方法:使用new Timestamp(long)
    Timestamp t = new Timestamp(new Date().getTime());
    System.out.println(t);

//第二种方法:使用Timestamp(int year,int month,int date,int hour,int minute,int second,int nano)
    Timestamp tt = new Timestamp(Calendar.getInstance().get(
          Calendar.YEAR) - 1900, Calendar.getInstance().get(
          Calendar.MONTH), Calendar.getInstance().get(
          Calendar.DATE), Calendar.getInstance().get(
          Calendar.HOUR), Calendar.getInstance().get(
          Calendar.MINUTE), Calendar.getInstance().get(
          Calendar.SECOND), 0);
    System.out.println(tt);

try {
       String sToDate = "2005-8-18";//用于转换成java.sql.Date的字符串
       String sToTimestamp = "2005-8-18 14:21:12.123";//用于转换成java.sql.Timestamp的字符串
       Date date1 = string2Date(sToDate);
       Timestamp date2 = string2Time(sToTimestamp);
       System.out.println("Date:"+date1.toString());//结果显示
       System.out.println("Timestamp:"+date2.toString());//结果显示
    }catch(Exception e) {
       e.printStackTrace();
    }
  }
}///:~

怎样处理一个时间段,比如某人登陆了xx天xx小时xx分xx秒。

这个问题可以如下处理:
        首先你肯定可以从数据库中读取这个用户第一次登陆的具体时间:不妨为2002-01-01 12:00:00
        同样他到目前为止最后登陆的具体时间:不妨为2002-09-08 13:14:15
        若取得是数据本来就是时间类型的,则不用转化,若是String的则可以在转化后处理。
    你可以利用类似上面的例子,取得这两个时间对应的Timestamp值dateTime;然后使用dateTime.getTime()方法得到这两个时间的long值,进行相减(大的减小的,即按时间后减先),得到一个long值,它是用毫秒milliseconds计算的,你将它换算一下就知道多少天多少小时多少分多少秒了,比如首先除于(java中/除)一天的毫秒数,得到天,然后用余下的值除于一小时的毫秒数,得到小时……最后就可以得到所有的需求了。

java.sql.Date和java.sql.Timestamp转换的更多相关文章

  1. java获取获得Timestamp类型的当前系统时间。以及java.util.date 、java.sql.Date之间的转换

    java获取取得Timestamp类型的当前系统时间java获取取得Timestamp类型的当前系统时间 格式:2010-11-04 16:19:42 方法1: Timestamp d = new T ...

  2. JAVA中java.util.Date、java.sql.Timestamp和String之间的互相转换

    java.util.Date与的String互转 java.util.Date---->String /** * 将java.util.Date对象转化为String字符串 * @param d ...

  3. [转]java.util.Date和java.sql.Date转换

    Date 的类型转换:首先记住java.util.Date 为 java.sql.Date的父类 1.将java.util.Date 转换为 java.sql.Date java.lang.Class ...

  4. java.sql.date和java.util.date的区别和转换

    不同点:java.util.Date是在除了SQL语句的情况下面使用的.java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分java.util.Date 是 java.sql. ...

  5. java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结

    java.lang.Object ....|__java.util.Date ..........|__java.sql.Date/java.sql.Timestamp /java.sql.Time ...

  6. java.util.Date 与 java.sql.Date 之间的转换

    SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd HH:mm:ss"); String dateStr = sdf.for ...

  7. java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和总结

    在web开发中,避免不了对日期的操作,就几种常见的日期操作做个总结(部分参考网络,在此表示感谢): java.util.Date.java.sql.Date.java.sql.Time.java.sq ...

  8. java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和联系

    java.util.Date.java.sql.Date.java.sql.Time.java.sql.Timestamp区别和联系 栏目:Java基础 作者:admin 日期:2015-04-19  ...

  9. java.util.Date和java.sql.Date之间的转换

    java.util.Date是在除了SQL语句的情况下面使用的.java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分它 们都有getTime方法返回毫秒数,自然就可以直接构建. ...

随机推荐

  1. OpenLDAP配置坎坷路

    https://segmentfault.com/a/1190000014683418 轻型目录访问协议(英文:Lightweight Directory Access Protocol,缩写:LDA ...

  2. 小程序报错 thirdScriptError

    thirdScriptError sdk uncaught third Error Unexpected token export SyntaxError: Unexpected token expo ...

  3. LODOP打印table超宽用省略号带'-'的内容换行问题

    前面的博文有div超宽隐藏(LODOP打印超过后隐藏内容样式),还有有table设置超宽隐藏(),此外,还有超宽后用省略号表示的css样式,此文是针对这个样式的.该样式正常情况下没问题,但是遇到-短线 ...

  4. Meta标签中的http-equiv属性

    http-equiv顾名思义,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为content,content中的内容其实就是各个参数的变 ...

  5. Ubuntu开发环境配置

    主要是: 源的更新 安装vim编辑器 远程登录xrdp相关配置 synergy symless键鼠共享配置 对新买的硬盘进行格式化和分区 vsftp环境搭建 gcc开发环境配置 qt5开发环境配置 m ...

  6. Flask 数据库连接

    Flask拥有丰富的扩展组件,数据库管理方面Flask-SQLAlchemy简化了数据库管理的操作.SQLAlchemy是一个很强大的关系型数据库框架,支持多种数据库后台.其不但提供了高层ORM,而且 ...

  7. phpstudy 8.0 安装redis并使用,解决phpstudy 8.0直接启用redis使用不了

    目前phpstudy 8.0直接安装redis启用,是用不了的 在phpstudy 8.0环境面板中找到redis安装后: 打开redis安装目录配置文件redis.windows.conf配置red ...

  8. php类的继承(基本概念,访问权限修饰符,重写override)

    类的继承 简单理解: 某个类A具有某些特征,另一个类B,也具有A类的所有特征,并且还可能具有自己的更多的一些特征,此时,我们就可以实现:B类使用A的特征信息并继续添加自己的一些特有特征信息. 基本概念 ...

  9. kafka原理分析

    #kafka为什么有高吞吐量 1 由于接收数据时可以设置request.required.acks参数,一般设定为1或者0,即生产者发送消息0代表不关心kafka是否接收成功,也就是关闭ack:1代表 ...

  10. IDEA 的操作与使用

    idea 设置syso File –> Setting –> Editor –> Live Templates debug 调试: F7 在 Debug 模式下,进入下一步,如果当前 ...