Linux で time(NULL) 関数と localtime() を使用して現在の時刻を取得する方法

Linux で time(NULL) 関数と localtime() を使用して現在の時刻を取得する方法

time(); 関数

関数プロトタイプ: time_t time(time_t *timer)
関数の目的: マシンのカレンダー時間を取得するか、カレンダー時間を設定する ヘッダーファイル: time.h
入力パラメータ: timer=NULL の場合、マシンのカレンダー時間が取得されます。time=時間値の場合、カレンダー時間を設定するために使用されます。
time_tはlong型です

/* time - コンピュータシステムの現在のカレンダー時刻を取得します
 * 日付と時刻を処理する関数は、この関数の戻り値に基づいて計算されます*
 * 関数プロトタイプ:
 * #include <time.h>
 * 
 * time_t 時間(time_t *calptr);
 *
 * 戻り値:
 * 成功: 1970-1-1、00:00:00 からの秒数
 *
 * 使用:
 * time_t 現在;
 * 
 * time(&now); // == now = time(NULL);
 */

localtime(); 関数

関数プロトタイプ: struct tm *localtime(const time_t *timer)
関数の目的: tm 構造体で表現されたマシン時間情報を返します。ヘッダー ファイル: time.h
入力パラメータ: タイマー: time() 関数を使用して取得されたマシン時間。

/*
 * localtime - ローカルタイムゾーンと夏時間フラグを考慮して、時刻値をローカル時間に変換します*
 * 関数宣言:
 * #include <time.h>
 *
 * 構造体 tm * localtime(const time_t *タイマー);
 *
 */
//構造体tmの定義は次のとおりです: 
 構造体tm 
 { 
   int tm_sec; /* 秒: 0-59 (K&R では 0-61 とされている?) */ 
   int tm_min; /* 分: 0-59 */ 
   int tm_hour; /* 深夜からの時間: 0-23 */ 
   int tm_mday; /* 月の日付: 1-31 */ 
   int tm_mon; /* 1月からの月数: 0-11 */ 
   int tm_year; /* 1900年からの年数 */ 
   int tm_wday; /* 日曜日からの日数 (0-6) */ 
   int tm_yday; /* 1月1日からの日数: 0-365 */ 
   int tm_isdst; /* +1 夏時間、0 夏時間なし、 
    * -1 分からない */ 
 };

time_t は実際には長整数なので、ある時点 (通常は 1970 年 1 月 1 日 00:00:00) からその時間 (つまり、カレンダー時間) までの秒数が長整数で表せる数値の範囲を超える場合はどうすればよいでしょうか。 time_t データ型の値の場合、それが表す時間は 2038 年 1 月 18 日 19:14:07 より後の時刻にすることはできません。より長い時間を表すために、一部のコンパイラ製造元は、カレンダー時間を節約するために 64 ビット以上の整数を導入しました。たとえば、Microsoft は Visual C++ でカレンダー時間を保存するために __time64_t データ型を使用し、32 ビット ワードの time() 関数を使用する代わりに、_time64() 関数を通じてカレンダー時間を取得します。このようにして、このデータ型を使用して、3001 年 1 月 1 日 00:00:00 より前の時間 (この時点を除く) を保存できます。

/*
* 時間();
* @author 李政<[email protected]>
*/

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

int main(int argc, char* argv[])
{ 
  構造体tm *tp; 
  time_t t = 時間(NULL); 
  tp = ローカルタイム(&t);

  printf("%d/%d/%d\n",tp->tm_mon+1,tp->tm_mday,tp->tm_year+1900); 
  printf("%d:%d:%d\n",tp->tm_hour,tp->tm_min,tp->tm_sec); 

  0を返します。
}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linuxのアラーム機能の例の説明
  • PHP は 6 つの Linux コマンド関数コード例を実行します
  • Linux での stat 関数と stat コマンドの使用法の詳細な説明
  • Linux/Mac で Python 関数にタイムアウトを追加する方法
  • Linux のリンク解除機能とファイルの削除方法
  • Linux lseek関数の使い方の詳しい説明
  • ARMアーキテクチャにおける関数呼び出しプロセスの簡単な分析

<<:  JavaScript モバイル H5 画像生成ソリューションの説明

>>:  MySQL 5.7 でパスワードを変更するときに発生する ERROR 1054 (42S22) の解決方法

推薦する

レスポンシブフレームワークのテーブルヘッダーの自動改行問題に対する簡単な解決策

最近、Bootstrap を使って Web サイトを開発しています。表を処理していたところ、PC で...

CSS3 rgb と rgba (透明色) の使い方の詳しい説明

誰もが色にとても敏感だと思います。私たちの目が見るところにはどこにでも色があります。では、CSS で...

MySQL で CURRENT_TIMESTAMP を使用する方法

目次CURRENT_TIMESTAMPの使用CURRENT_TIMESTAMPを使用したタイムスタン...

Element-uiはテーブル内のセルを直接クリックして編集します

目次成果を達成する実装コード最近、会社でelementUIを使い始めたため、開発の過程でテーブルのセ...

仮想マシンのディスクサイズを拡張する方法

Vmvare が仮想マシンのディスク サイズを設定した後、ディスク領域が不足していることがわかりまし...

MySQLデータベースを定期的に自動バックアップする方法

データは貴重なものであることは誰もが知っています。データをバックアップしなければ、データをそのまま放...

MySQL マルチバージョン同時実行制御 MVCC の実装

目次MVCCとはMVCC 実装MVCC はファントム リードを解決しますか? MVCCとはMVCC ...

Dockerリポジトリの一般的なコマンドの詳細な説明

ログイン dockerログインdocker login コマンドを実行し、ユーザー名、パスワード、メ...

Node+socketでシンプルなチャットルーム機能を実現

この記事では、参考までに、シンプルなチャットルームを実装するためのnode+socketの具体的なコ...

MySQL 5.7.20 共通ダウンロード、インストール、設定方法と簡単な操作スキル(解凍版無料インストール)

早朝に MySQL 5.7.19 のインストールを終えたばかりですが、午前中に MySQL が最新バ...

MySQL の 6 つの一般的な制約タイプの詳細な説明

目次序文1.nullでない2. ユニーク3. デフォルト4.主キー自動増分主キー5. 外部キー6.チ...

VMware kali仮想マシン環境の設定方法

1|0 カーネルをコンパイルする(1)uname -rコマンドを実行してカーネルバージョンを表示しま...

モバイルデバイス用のメタタグ設定の完全なリスト

序文以前フロントエンドを勉強していたとき、メタタグに対する私の理解はこの一文だけでした。 <メ...

Vueコンポーネントの7つの通信方法についての深い理解

目次1. props/$emit導入コードサンプル2.Vスロット導入コードサンプル3.$refs/ ...

MySQLで指定した時間前にレコードを自動的に削除する方法

イベントについて: MySQL 5.1 では、イベントの概念が導入され始めました。イベントは「時間ト...