如何使用Timestamp构造函数

时间:2014-03-24 14:44:31

标签: java timestamp deprecated default-constructor

我想在Java中使用 Timestamp 类的默认构造函数,但Eclipse表示它已弃用。这是构造函数:

Timestamp myDate = new Timestamp(2014, 3, 24, 0, 0, 0 ,0);

Eclipse建议使用Timestamp(long time)默认构造函数,但我不知道如何使用它。

5 个答案:

答案 0 :(得分:5)

下一个method呢?

int myYear = 2014;
int myMonth = 3;
int myDay = 24;
Timestamp ts = Timestamp.valueOf(String.format("%04d-%02d-%02d 00:00:00", 
                                                myYear, myMonth, myDay));

使用JSR 310: Date and Time API(在Java SE 8中引入release):

java.sql.Timestamp ts = java.sql.Timestamp.valueOf(
        java.time.LocalDate.of(myYear, myMonth, myDay).atStartOfDay()
);

答案 1 :(得分:2)

创建一个java.util.Date实例(不要与java.sql.Date混淆)并将其时间(以毫秒为单位)作为参数传递给Timestamp。这是一个例子:

Timestamp now = new Timestamp(new java.util.Date().getTime());

还有其他方法可以创建java.util.Date对象实例:

  • 使用Calendar

    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.HOUR, 0);
    calendar.set(Calendar.MINUTE, 0);
    calendar.set(Calendar.SECOND, 0);
    calendar.set(Calendar.MILLISECOND, 0);
    Date today = calendar.getTime();
    Timestamp now = new Timestamp(today.getTime());
    
  • 使用DateFormat或其子类SimpleDateFormat

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
    Date date = sdf.parse("2014/3/24");
    Timestamp today = new Timestamp(date.getTime());
    

答案 2 :(得分:1)

this answer中所述,您可以使用DateFormat类解析它:

DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Date date = dateFormat.parse("23/09/2007");
long time = date.getTime();
new Timestamp(time);

答案 3 :(得分:1)

为特定日期设置日历,然后以毫秒为单位获取时间在Timestamp的构造函数中使用它:

new Timestamp(new GregorianCalendar(2014, 3, 24).getTimeInMillis());

答案 4 :(得分:0)

您可以使用GregorianCalendar类

GregorianCalendar cal = new GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second);
Timestamp ts = new Timestamp(cal.getTimeInMillis());

如果你有一个以下格式的字符串,那么你也可以这样做:

Timestamp ts = Timestamp.valueOf("2014-01-01 00:00:00");