Câu trả lời:
java.sql.Timestamp
mở rộng java.util.Date
. Bạn có thể làm:
String s = new SimpleDateFormat("MM/dd/yyyy").format(myTimestamp);
Hoặc cũng bao gồm thời gian:
String s = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(myTimestamp);
Sử dụng String.format (hoặc java.util.Formatter ):
Timestamp timestamp = ...
String.format("%1$TD %1$TT", timestamp)
EDIT:
vui lòng xem tài liệu của Formatter để biết TD và TT nghĩa là gì: click vào java.util.
Chữ 'T' đầu tiên là viết tắt của:
't', 'T' date/time Prefix for date and time conversion characters.
và ký tự theo sau 'T':
'T' Time formatted for the 24-hour clock as "%tH:%tM:%tS".
'D' Date formatted as "%tm/%td/%ty".
05/30/17 00:39:18
.
Đối với câu hỏi cụ thể này, gợi ý tiêu chuẩn về java.text.SimpleDateFormat
hoạt động, nhưng có tác dụng phụ đáng tiếc SimpleDateFormat
là không an toàn cho chuỗi và có thể là nguồn gốc của các vấn đề đặc biệt khó chịu vì nó sẽ làm hỏng đầu ra của bạn trong các tình huống đa luồng và bạn sẽ không nhận được bất kỳ ngoại lệ!
Tôi sẽ mạnh mẽ khuyên bạn nên nhìn Joda cho bất cứ điều gì như thế này. Tại sao ? Đó là một thư viện ngày / giờ phong phú và trực quan hơn nhiều cho Java so với thư viện hiện tại (và là cơ sở của thư viện ngày / giờ Java tiêu chuẩn mới cập nhật, vì vậy bạn sẽ sớm học được một tiêu chuẩn API).
Nếu bạn đang sử dụng MySQL và muốn cơ sở dữ liệu tự thực hiện chuyển đổi, hãy sử dụng điều này:
Nếu bạn thích định dạng bằng Java, hãy sử dụng cái này:
SimpleDateFormat dateFormat = new SimpleDateFormat("M/dd/yyyy");
dateFormat.format( new Date() );
Sử dụng a DateFormat
. Trong một ứng dụng được quốc tế hóa, hãy sử dụng định dạng do getInstance
. Nếu bạn muốn kiểm soát rõ ràng định dạng, hãy tự tạo một định dạng mới SimpleDateFormat
.