zoukankan      html  css  js  c++  java
  • Java Timestamp 类的使用

    很简单,我们可以这样声明 Timestamp ts=new Timestamp(new Date().getTime());这样我们就可以得到时间比较具体的一个类型转换!!! 在开发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) 
       dateString 需要转换为timestamp的字符串 
       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类型 
      java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp类型,timeDate.getTime()返回一个long型 
      return dateTime; 
    } 
    /** 
      *method 将字符串类型的日期转换为一个Date(java.sql.Date) 
       dateString 需要转换为Date的字符串 
       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中/除)一天的毫秒数,得到天,然后用余下的值除于一小时的毫秒数,得到小时……最后就可以得到所有的需求了

     

     

     

  • 相关阅读:
    js的基本数据类型有哪些?
    UML 类图
    三种代理模式
    jsp 知识点
    httpServlet
    Qt时间&日期
    Microsoft visual studio C 运行时库 在 xx.exe中检测到一个错误
    C++调用COM之错
    PCL中的bug修改
    Qt使用SQLite
  • 原文地址:https://www.cnblogs.com/xwb583312435/p/9007086.html
Copyright © 2011-2022 走看看