Giới thiệu
SQLite trên Android hỗ trợ hàm ngày giờ mạnh mẽ. Ví dụ này minh họa cách lấy và hiển thị thời gian địa phương (local time) khi truy vấn dữ liệu.
Bước 1 & 2: Tạo project và giao diện
Giống như các ví dụ trước: 2 EditText (tên, lương), 4 Button, 1 ListView. Xem chi tiết tại bài BLOB SQLite.
Bước 3: MainActivity.java
Code tương tự, chỉ khác ở DatabaseHelper.
Bước 4: DatabaseHelper.java - Truy vấn với localtime
public ArrayList<String> getAllContacts() {
ArrayList<String> list = new ArrayList<>();
SQLiteDatabase db = getReadableDatabase();
// Sử dụng DATETIME('now', 'localtime') để lấy giờ địa phương
Cursor cursor = db.rawQuery(
"SELECT id, name, salary, DATETIME('now', 'localtime') as local_time " +
"FROM " + TABLE_NAME, null);
if (cursor.moveToFirst()) {
do {
int id = cursor.getInt(0);
String name = cursor.getString(1);
String salary = new String(cursor.getBlob(2));
String localTime = cursor.getString(3);
list.add(id + " : " + name + " : " + salary + " : " + localTime);
} while (cursor.moveToNext());
}
cursor.close();
return list;
}
Giải thích hàm thời gian SQLite
DATETIME('now'): Thời gian UTC hiện tại.DATETIME('now', 'localtime'): Chuyển UTC sang giờ địa phương của thiết bị.DATETIME('now', 'utc'): Ép buộc trả về UTC.- Có thể cộng/trừ:
DATETIME('now', '+1 hour'),DATETIME('now', '-1 day').
Kết quả

Mỗi bản ghi hiển thị kèm theo thời gian địa phương tại момент truy vấn.
Lưu ý
Hàm DATETIME('now', 'localtime') được tính tại thời điểm thực thi truy vấn, không phải lúc insert. Muốn lưu thời gian tạo bản ghi, dùng DEFAULT CURRENT_TIMESTAMP khi tạo bảng.