Có đôi lúc với những yêu cầu gay gắt của khách hàng hay đơn giản là bài tập hoóc búa của một ông thầy nào đó cho bạn: Chuyển Date thành Timestamp và Timestamp thành Date trong Java
Date ở đây là class thuộc gói java.util (java.util.Date
)
Timestamp là class thuộc gói java.sql (java.sql.Timestamp
)
Tại sao phải rắc rối như vậy? Đơn giản là lập trình mà, chuyện gì cũng có thể xảy ra, hình tròn có khi không còn tròn nữa đó chứ 🙂
Giỡn vậy thôi, sở dĩ có khi bạn gặp trường hợp này là vì MySQL và một số Hệ quản trị CSDL khác có một kiểu dữ liệu là Timestamp, muốn insert được dữ liệu vào CSDL cho các trường có kiểu dữ liệu này thì trong Java bạn cũng phải khai báo kiểu dữ liệu Timestamp cho các dữ liệu đó. Mà mặt khác, việc thao tác với dữ liệu kiểu Date dễ dàng hơn nhiều so với Timestamp nên nhiều lúc đang làm việc với Date nhưng lại chuyển về Timestamp và ngược lại.
Ví dụ Chuyển Date thành Timestamp và Timestamp thành Date
package com.ngockhuong; import java.sql.Timestamp; import java.util.Date; public class DateToTimestamp { public static void main(String[] args) { // lấy ngày giờ hiện tại Date now = new Date(); System.out.println(now); // chuyển Date sang Timestamp Timestamp timestamp = new Timestamp(now.getTime()); System.out.println(timestamp); // chuyển Timestamp sang Date Date last = new Date(timestamp.getTime()); System.out.println(last); } }
Kết quả
Tue Feb 14 01:53:24 ICT 2017 2017-02-14 01:53:24.981 Tue Feb 14 01:53:24 ICT 2017