Hàm chuyển đổi Timestamp thành Datetime trong Android và JavaScript

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

 

Gom Marker trong Android với Google Maps Android API – Google Maps Android Marker Clustering Utility Sử dụng SwipeRefreshLayout trong ứng dụng Android Hướng dẫn tạo Material Dialog Bottom Sheet Android Tạo context menu trong Android – ActionBar ActionMode.CallBack Example Retrofit và Volley thư viện nào tốt hơn Hướng dẫn sử dụng thư viện Volley trong Android Tạo Web Service bằng PHP và MYSQL cho ứng dụng di động – Part 2 Tạo Web Service bằng PHP và MYSQL cho ứng dụng di động – Part 1 Design Patterns là gì? Tạo Project Android theo mẫu Design Patterns(Part 2) Design Patterns là gì? Tạo Project Android theo mẫu Design Patterns(Part 1)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.