Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

In thời gian hệ thống trong C++ (3 cách khác nhau)

Có nhiều cách in ngày, giờ hệ thống dưới dạng đọc được (Human Readable).

Cách 1: Dùng time.h (C-style)

  • time() - lấy thời gian lịch hiện tại (kiểu arithmetic).
  • localtime() - chuyển time_t sang struct tm (giờ địa phương).
  • asctime() - chuyển struct tm sang chuỗi readable.

Định dạng: Day Month Date Hour:Min:Sec Year

#include <iostream>
#include <ctime>
using namespace std;

int main() {
    time_t t;
    struct tm *tt;
    
    time(&t);           // Lấy thời gian hiện tại
    tt = localtime(&t); // Chuyển sang giờ địa phương
    
    cout << "Current Day, Date and Time = " << asctime(tt);
    return 0;
}
Current Day, Date and Time = Tue Jul 23 19:05:50 2019

Cách 2: Dùng Chrono Library (C++11)

Thư viện chrono đo thời gian chính xác đến nanosecond.

#include <chrono>
#include <ctime>
#include <iostream>
using namespace std;

int main() {
    auto now = chrono::system_clock::now();
    time_t tt = chrono::system_clock::to_time_t(now);
    cout << ctime(&tt) << endl;
    return 0;
}
Tue Jul 23 19:05:50 2019

Cách 3: C-style thuần túy (stdio.h)

#include <stdio.h>
#include <time.h>

int main() {
    time_t t = time(NULL);
    printf("%s", ctime(&t));
    return 0;
}
Tue Jul 23 20:14:42 2019

So sánh

CáchTiêu chuẩnĐộ chính xácGhi chú
time.h + ctimeC/C++98GiâyĐơn giản, phổ biến
chronoC++11NanosecondHiện đại, type-safe, đo hiệu năng
stdio.hCGiâyChỉ dùng printf

Mở rộng: Format tùy chỉnh với chrono (C++20)

#include <chrono>
#include <format>
#include <iostream>
using namespace std;

int main() {
    auto now = chrono::system_clock::now();
    // C++20: format tùy chỉnh
    cout << format("{:%Y-%m-%d %H:%M:%S}", now) << endl;
    return 0;
}