Trong các project Android chúng ta thường lưu Datetime là kiểu String, nhưng chính xác thì phải lưu Datetime là kiểu Integer hoặc Long đặt tên biến là timestamp.
Timestamp là gì?
Timestamp là chuỗi các ký tự hoặc thông tin được mã hóa xác định khi một sự kiện nhất định xảy ra, thường là cho ngày và thời gian trong ngày, đôi khi chính xác đến một phần nhỏ của giây. Nó là 1 kiểu dữ liệu thời gian, nhưng được biểu diễn dưới dạng 1 số nguyên (integer), giống như cái tên của nó timestamp(dấu thời gian).
Chuyển đổi timestamp thành Datetime trong Android
Để lấy timestamp hiện tại trong Android:
long timestamp = Calendar.getInstance().getTimeInMillis(); Log.e("timestamp", timestamp + ""); Output: E/timestamp: 1490076946994
Đã lấy được timestamp hiện tại là 1490076946994
Giờ chuyển đổi từ timestamp thành Datetime trong Android ta tiến hành như sau:
private String formatTime(long timestamp) { SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss - EEE, dd MMM yyyy "); Date date = new Date(timestamp); return sdf.format(date); } Log.e("formatTime",formatTime(timestamp)); Output: E/formatTime: 13:15:46 - Th 3, 21 thg 3 2017
Ở dòng 2 trong hàm trên là dùng để định dạng kiểu hiển thị của thời gian.
Output là: 13:15:46 – Th 3, 21 thg 3 2017
Dưới đây là một số mẫu định dạng cho kiểu hiển thị thời gian:
Date and Time Pattern | Result |
---|---|
"yyyy.MM.dd G 'at' HH:mm:ss z" |
2001.07.04 AD at 12:08:56 PDT |
"EEE, MMM d, ''yy" |
Wed, Jul 4, '01 |
"h:mm a" |
12:08 PM |
"hh 'o''clock' a, zzzz" |
12 o'clock PM, Pacific Daylight Time |
"K:mm a, z" |
0:08 PM, PDT |
"yyyyy.MMMMM.dd GGG hh:mm aaa" |
02001.July.04 AD 12:08 PM |
"EEE, d MMM yyyy HH:mm:ss Z" |
Wed, 4 Jul 2001 12:08:56 -0700 |
"yyMMddHHmmssZ" |
010704120856-0700 |
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" |
2001-07-04T12:08:56.235-0700 |
"yyyy-MM-dd'T'HH:mm:ss.SSSXXX" |
2001-07-04T12:08:56.235-07:00 |
"YYYY-'W'ww-u" |
2001-W27-3 |
Bạn có thể tham khảo về SimpleDateFormat tại đây.
Chuyển đổi timestamp thành Datetime trong JavaScript
Sau đây là hướng dẫn nhanh cách viết hàm chuyển đổi từ timestamp thành ngày tháng năm trong Javascript:
Đầu tiên bạn tạo một function có tên tùy ý, trong ví dụ này mình đặt là formatDay:
function formatDay(timestamp) { var date = new Date(timestamp*1000); var month = date.getMonth()+1; var year = date.getFullYear(); var day = date.getDate(); return year+'/'+month+'/'+day; }
Sau đó bạn gọi lại để sử dụng như sau:
Ví dụ: timestamp bạn muốn convert là 1476205200
var myday = formatDay(1476205200); console.log(myday ); Output: 2016/10/12
Lưu ý: Nếu timestamp là đơn vị milisecond, bạn phải bỏ *1000 trong hàm chuyển đổi đi:
function formatDay(timestamp) { var date = new Date(timestamp); var month = date.getMonth()+1; var year = date.getFullYear(); var day = date.getDate(); return year+'/'+month+'/'+day; }
Ví dụ: timestamp bạn muốn convert là 1490076946994
var myday = formatDay(1490076946994); console.log(myday ); Output: 2017/3/21