将java.sql.Timestamp格式化为String

时间:2016-02-03 07:09:23

标签: java

是否可以将java.sql.Timestmap转换/格式化为具有以下格式的字符串:

  

YYYYMMDD

我知道用String做这件事很简单,例如:

String dateString = "2016-02-03 00:00:00.0";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse(dateString);
String formattedDate = new SimpleDateFormat("yyyyMMdd").format(date);

但是,我必须使用Timestamp对象。

4 个答案:

答案 0 :(得分:16)

java.sql.Timestamp扩展java.util.Date,因此您可以采用相同的方式对其进行格式化:

String formattedDate = new SimpleDateFormat("yyyyMMdd").format(date);

解析几乎相同,您可以使用其“millis”表示来构建它:

Timestamp timestamp = new Timestamp(new SimpleDateFormat("yyyyMMdd").parse(formattedDate).getTime());

答案 1 :(得分:12)

你可以这样做:

Timestamp ts = ...;
Date date = new Date();
date.setTime(ts.getTime());
String formattedDate = new SimpleDateFormat("yyyyMMdd").format(date);

答案 2 :(得分:1)

使用www.joda.org/joda-time/

public static String timestampAsString(Timestamp timestamp) {
    return DateTimeFormat.forPattern("yyyyMMdd").print(timestamp.getTime());
}

答案 3 :(得分:1)

使用(并非如此)新的 java.time 包:

private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd");

String convert(Timestamp ts) {
    return ts.toLocalDateTime().format(FORMATTER);
}