格式化Java中的时间戳

时间:2014-05-16 03:21:27

标签: java format timestamp

我希望以yyyy-MM-dd HH:mm:ss的格式生成当前时间戳。我已经写了以下代码,但它总是给我这种格式yyyy-MM-dd HH:mm:ss.x

你如何摆脱.x部分?

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentTime = df.format(new Date());
Timestamp timestamp = Timestamp.valueOf(currentTime);

我需要有一个时间戳类型来写入mysql。

3 个答案:

答案 0 :(得分:2)

您可能正在查看String对象在数据库引擎中的Timestamp表示形式或其Java表示形式,方法是使用System.out.println或其他方法在控制台中打印它。请注意,实际存储的内容(在Java端或数据库引擎中)是一个数字,表示自纪元以来的时间(通常是1970年1月1日)以及您希望/需要存储的日期。

不应注意消费 String时代表的Timestamp格式。如果您应用相同的SimpleDateFormat来获取String对象的timestamp表示,则可以轻松演示此内容:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentTime = df.format(new Date());
Timestamp timestamp = Timestamp.valueOf(currentTime)
//will print without showing the .x part
String currentTimeFromTimestamp = df.format(currentTime);

无论如何,如果您想要当前时间,只需直接从Timestamp的结果创建new Date

Timestamp timestamp = new Timestamp(new Date().getTime());

答案 1 :(得分:1)

您可以将时间戳作为字符串插入MySQL表。你在currentTime中的String表示就足够了。

答案 2 :(得分:0)

在Java中编写Timestamp或任何数据类型的最佳方法是使用PreparedStatement和适当的方法

    PreparedStatement ps = conn.prepareStatement("update t1 set c1=?");
    ps.setTimestamp(1, new java.sql.Timestamp(new Date().getTime()));
    ps.executeUpdate();