是否可以将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
对象。
答案 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)
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);
}