如何创建日期为 23/09/2007 的时间戳?
问问题
363626 次
8 回答
159
我猜Timestamp
你的意思是java.sql.Timestamp
。你会注意到这个类有一个接受long
参数的构造函数。您可以使用DateFormat
类解析它:
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Date date = dateFormat.parse("23/09/2007");
long time = date.getTime();
new Timestamp(time);
于 2009-06-10T11:19:54.707 回答
130
那这个呢?
java.sql.Timestamp timestamp = java.sql.Timestamp.valueOf("2007-09-23 10:10:10.0");
于 2009-06-10T11:38:26.713 回答
18
时间戳是什么意思?如果您的意思是自 Unix 纪元以来的毫秒数:
GregorianCalendar cal = new GregorianCalendar(2007, 9 - 1, 23);
long millis = cal.getTimeInMillis();
如果你想要一个实际的 java.sql.Timestamp 对象:
Timestamp ts = new Timestamp(millis);
于 2009-06-10T11:26:30.683 回答
14
于 2015-10-27T08:44:13.467 回答
6
您还可以执行以下操作:
// untested
Calendar cal = GregorianCalendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 23);// I might have the wrong Calendar constant...
cal.set(Calendar.MONTH, 8);// -1 as month is zero-based
cal.set(Calendar.YEAR, 2009);
Timestamp tstamp = new Timestamp(cal.getTimeInMillis());
于 2009-06-10T11:41:33.663 回答
4
根据API,不推荐使用接受年、月等的构造函数。相反,您应该使用接受 long 的构造函数。您可以使用Calendar实现来构造所需的日期并以 long 形式访问时间表示,例如使用getTimeInMillis方法。
于 2009-06-10T11:23:08.710 回答
-1
更一般的答案是 import java.util.Date
,然后当您需要将 a 设置为timestamp
等于当前日期时,只需将其设置为new Date()
。
于 2012-11-28T02:02:26.950 回答