Thư viện chuẩn C++ không cung cấp kiểu date phù hợp. C++ kế thừa các struct và hàm thao tác ngày giờ từ C. Để truy cập hàm và cấu trúc liên quan đến ngày giờ, cần include header <ctime> trong chương trình C++.
Có bốn kiểu liên quan đến thời gian: clock_t, time_t, size_t, và tm. Các kiểu clock_t, size_t và time_t có thể biểu diễn thời gian và ngày hệ thống dưới dạng số nguyên.
Kiểu cấu trúc tm giữ ngày giờ dưới dạng cấu trúc C có các thành phần:
struct tm {
int tm_sec; // giây 0-61
int tm_min; // phút 0-59
int tm_hour; // giờ 0-24
int tm_mday; // ngày tháng 1-31
int tm_mon; // tháng 0-11
int tm_year; // năm từ 1900
int tm_wday; // ngày từ chủ nhật
int tm_yday; // ngày từ 1/1
int tm_isdst; // giờ mùa hè
}
Giả sử bạn muốn lấy ngày giờ hệ thống hiện tại, hoặc là giờ địa phương (local time) hoặc giờ UTC (Coordinated Universal Time). Ví dụ sau đạt được điều đó:
Ví dụ
#include <iostream>
#include <ctime>
using namespace std;
int main() {
// ngày/giờ hiện tại dựa trên hệ thống
time_t now = time(0);
char* dt = ctime(&now); // chuyển now sang chuỗi
cout << "Ngày và giờ địa phương: " << dt << endl;
// chuyển now sang struct tm cho UTC
tm *gmtm = gmtime(&now);
dt = asctime(gmtm);
cout << "Ngày và giờ UTC: " << dt << endl;
}
Kết quả
Ngày và giờ địa phương: Fri Mar 22 13:07:39 2019 Ngày và giờ UTC: Fri Mar 22 07:37:39 2019