はじめに

 今の日付と時刻を知りたいとおもったことはありませんか。いくつか方法を記載します。
 ユーザー定義の変数名は日本語にしています。メリハリがあるとコードが読みやすいかなぁとおもったので。
 サンプルでは『using namespace std;』を省略していますので、コードを試すときはこの行をおぎなってください。

経過秒』を time_t 形式で取得

 とりあえず time_t 形式にします。これは『1970/01/01 00:00:00 UTC からの経過秒』です。
 32ビットシステムでは 2038/01/19 03:14:07 まで表現できるそうです。もうすぐトラブルが発生しそうな予感がしますね。64ビットシステムへの移行が必要です。

now()を使う方法

#include <chrono>
chrono::system_clock::time_point 日時 = chrono::system_clock::now();
time_t 経過秒 = chrono::system_clock::to_time_t(日時);

time(nullptr)を使う方法

#include <chrono>
time_t 経過秒 = time(nullptr);

 『nullptr』を使うことが推奨されているようですが、かわりに『NULL』や『0』を使うこともできます。

構造体 tm 形式へ変換

 先ほど求めた経過秒(time_t)を今の日時 (struct tm) にします。今の日時といっても色々ありますが、協定世界時 (UTC,GMT) へ変換するものと、現地時間(ローカルタイム)へ変換するものを記載します。

協定世界時へ

struct tm 今の日時;
gmtime_s(&今の日時, &経過秒);

現地時間(日本時間)へ

struct tm 今の日時;
localtime_s(&今の日時, &経過秒);

今の日時 (struct tm) を文字の日時 (char[])へ

 今の日時を文字として整形してみましょう。日付の文字列は国によって異なりますが、今回は日本の形式にします。
 ・日本 : //日
 ・イギリス : 日//
 ・アメリカ : /日/
 国によって日付の並び順が異なりますが、何だか話す順番に通じるものがあるような気がします。

char型の『年/月/日 時:分:秒』へ

char 文字の日時[128];
strftime(文字の日時, 128, "%Y/%m/%d %H:%M:%S", &今の日時);

 char[128] では sizeof(char[128]) が128になります。strftime(文字の日時, sizeof(文字の日時), … としても大丈夫そうです。

wchar_t型の『年/月/日 時:分:秒』へ

wchar_t 文字の日時[128];
wcsftime(文字の日時, 128, L"%Y/%m/%d %H:%M:%S", &今の日時);

 wchar_t[128] では sizeof(wchar_t[128]) が 256 になります。wcsftime(文字の日時, sizeof(文字の日時), … とはできませんね。

さいごに

 コード全体を書いてみましょう。

#include <chrono>
using namespace std;
time_t 経過秒 = time(nullptr);
struct tm 今の日時;
localtime_s(&今の日時, &経過秒);
char 文字の日時[128];
strftime(文字の日時, 128, "%Y/%m/%d %H:%M:%S", &今の日時);
cout << "今は " << 文字の日時 << endl;

.htaccess (2) @False (3) @True (5) ByRef (3) ByVal (3) CGI (6) cron (2) CSS (8) Excel (3) False (3) Goto (3) HTML (4) httpd.conf (2) if (3) Java (5) Java Servlet (3) Linux (3) List (3) Lotus Script (35) Lotus 式言語 (28) ls (2) MariaDB (4) Notes/Domino (12) null (5) Option Compare (3) Path (3) PHP (5) Python (7) Spring Boot (3) True (3) UTF-8 (4) VBScript (29) Windows (9) インストール (6) セットアップ (2) ダウンロード (2) ノーコード (4) ファイル一覧 (2) ローコード (3) 変換 (3) 変数 (3) 比較方法 (7) 環境変数 (4) 配列 (4) 開発環境 (4)