`
famoushz
  • 浏览: 2963369 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Timestamp有两个构造方法

阅读更多

Timestamp 有两个构造方法:

new Timestmap(Long),就是上面java.sql.Timestamp now = new java.sql.Timestamp ((new java.util.Date ()).getTime());的方法,((new java.util.Date ()).getTime()返回的是个Long

还有new Timestamp (int year,int month,int date ,int hour,int minute,int second,int millisecond),印象中生成是int year = 当前年 - 1400,int month = 当前月 - 1
不过这个构造方法不是不推荐的

EJB里DATE 型的字段用setTimestamp(column,Timestamp )来设。

在开发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类型
   java.sql.Timestamp dateTime = new java.sql.Timestamp (timeDate.getTime());//Timestamp 类型,timeDate.getTime()返回一个long型
   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 date 1 = string2Date (sToDate);
      Timestamp date 2 = string2Time(sToTimestamp);
    System.out.println("Date :"+date 1.toString());//结果显示
    System.out.println("Timestamp :"+date 2.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中将string类型转换成timestamp类型

    最后,我们使用getTime()方法将Date类型的日期对象转换成long类型的时间戳,然后将其传递给Timestamp构造函数,以创建一个Timestamp对象。 在上面的代码中,我们还使用了setLenient()方法,该方法用于控制是否将...

    pandas中Timestamp类用法详解

    以下有两种方式可以创建一个Timestamp对象: 1. Timestamp()的构造方法 import pandas as pd from datetime import datetime as dt p1=pd.Timestamp(2017,6,19) p2=pd.Timestamp(dt(2017,6,19,hour=9,minute=13,...

    PHP高级对象构建 多个构造函数的使用

    在这个场景下,特别提到了“多个构造函数的使用”,这是一种扩展和优化构造函数功能的策略,使得类能够根据传入的不同参数类型执行不同的初始化逻辑。 构造函数在PHP中用于在创建对象时自动执行特定的任务。默认的...

    计算2个日期之间的天数

    总结一下,计算两个日期之间的天数在JavaScript中主要涉及Date对象的使用,包括构造函数、getTime()方法和时间戳的计算。通过这些基础操作,你可以轻松地实现这一功能,并根据需要进行扩展。在编程实践中,不断提升...

    app令牌的一个token实现

    Token 类提供了两个构造函数:一个带有 signature 和 timestamp 的构造函数,另一个只有 signature 的构造函数。 Token 类的方法 Token 类提供了多个方法: 1. getSignature() 方法返回 Token 的唯一标识符 ...

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

    4. 使用 `Timestamp` 构造函数创建一个新的 `Timestamp` 对象,传入上述计算得到的毫秒值。 5. 最后,通过 `sdf.format()` 方法将 `Timestamp` 对象转换为字符串,按照指定的格式进行显示。 值得注意的是,代码中...

    麻省理工18年春软件构造课程阅读11-抽象函数与表示不变量-1

    在软件构造课程中,抽象函数和表示不变量是两个非常重要的概念。下面我们将对这两个概念进行深入的探讨。 1. 抽象函数 抽象函数是一种特殊的函数,它可以隐藏实现细节,并将功能抽象出来。抽象函数可以帮助我们更...

    Hbase Java API

    HBaseConfiguration 代表的是 HBase 配置信息,可以通过两个构造方式来创建:public HBaseConfiguration() 和 public HBaseConfiguration(final Configuration c)。HBaseConfiguration 可以设置 ZooKeeper 的配置...

    掌握DATE 类,掌握产生唯一数的方法

    该类有两个构造方法:一个接受一个长整型参数表示自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数;另一个没有参数,创建当前时间的 Date 对象。例如: ```java // 创建当前时间的 Date 对象 Date currentDate = ...

    TimeUtil_java-long型与Date型时间转换工具

    `TimeUtil`工具类可能会提供这两个转换的静态方法,例如: ```java public class TimeUtil { public static Date longToDate(long timestamp) { return new Date(timestamp); } public static long dateToLong...

    设计一个linedata类,构造时指定均线周期 ,定义on_tick函数 输入为时间和值 计算移动平均线SMA

    - `on_tick`函数:此函数接收两个参数,一个是时间戳(通常为字符串或自定义的时间结构体),另一个是价格(double类型)。这个函数将新价格添加到历史数据中,并根据当前的`price_history`计算SMA。 2. **`on_...

    hbase资料api

    Get对象包含了一个Get查询需要的信息,它的构造方法有两种:public Get(byte [] row)和public Get(byte [] row, RowLock rowLock)。Rowlock是为了保证读写的原子性,你可以传递一个已经存在Rowlock,否则HBase会自动...

    COleDateTime-and-COleDateTimeSpan.zip_COleDateTimeSpan

    这两个类分别用于表示日期和时间以及时间间隔。`COleDateTime`可以存储并操作日期和时间值,而`COleDateTimeSpan`则用于表示两个日期或时间之间的时间差。 `COleDateTime`类: 1. `COleDateTime`是用来处理日期和...

    Androd时间戳转化

    在Android中比较两个日期或时间戳,可以简单地用减法操作来比较它们的差值: ```java long timeDifference = newerTimestamp - olderTimestamp; if (timeDifference > 0) { // newerTimestamp is newer than ...

    Hibernate源代码分析(二)

    从上面的代码中,我们可以看到 ConnectionProvider 提供了两个主要方法:getConnection() 和 closeConnection()。getConnection() 方法负责提供 Connection 对象,而 closeConnection() 方法负责关闭 Connection ...

    利用java反射创建通用的数据库查询方法.docx

    为了实现这一目标,我们需要解决以下两个关键问题: 1. **如何构建SQL语句**:SQL语句需要根据传入的实体类动态生成。 2. **如何解析结果集**:从数据库查询返回的结果集需要映射到相应的实体类实例上。 #### 具体...

    java.util.Date与java.sql.Date互转及字符串转换为日期时间格式[文].pdf

    java.util.Date和java.sql.Date是Java中两个常用的日期时间类,分别属于不同的包。java.util.Date是Java标准库中的日期时间类,而java.sql.Date是Java数据库连接(JDBC)中的日期时间类。两者之间可以进行互转,但...

Global site tag (gtag.js) - Google Analytics