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) の解決方法

推薦する

vite2.x は ant-design-vue@next コンポーネントのオンデマンド読み込みを実装します。

1. 使用バージョンバイト:2.0 ant-design-vue: 2.0.0-rc.8ヴュー:3...

MySQLのスロークエリの詳細な説明

MySQL操作情報のクエリ show status -- すべての MySQL 操作情報を表示します...

18 個のキラー JavaScript ワンライナー

序文JavaScript は習得が最も簡単な言語の 1 つであるため、成長と繁栄を続けており、市場に...

CSSのマッチング問題を解決する

問題の説明ご存知のとおり、CSS を記述する場合、HTML のクラスの定義または ID の定義に従っ...

Mysql+JavaSwing に基づくスーパーマーケット商品管理システムの設計と実装

目次1. 機能紹介2. キーコード2.1 ホームページの機能2.2 製品情報を追加する2.3 データ...

MySQL 5.7.16 ZIP パッケージのインストールと設定のチュートリアル

この記事では、MySQL 5.7.16 ZIPパッケージのインストールと設定のチュートリアルを参考ま...

Linux 継続的インテグレーションで Maven を自動的にインストールする方法

Mavenパッケージを解凍する tar xf apache-maven-3.5.4-bin.tar....

VMware Workstation での VMware vSphere のセットアップ (グラフィック チュートリアル)

VMware vSphere は、業界をリードする最も信頼性の高い仮想化プラットフォームです。 v...

Dockerコンテナ同士を接続する3つの方法の詳しい説明

Docker コンテナ間の相互接続と通信には 3 つの方法があります。 Docker 内部ネットワー...

TypeScript マッピング型の詳細

目次1. マップされた型2. マッピング修飾子3. キーの再マッピング4. さらなる探究序文: Ty...

LNMP を展開して HTTPS サービスを有効にする方法に関するチュートリアル

LNMP とは: Linux+Nginx+Mysql+(php-fpm、php-mysql)つまり、...

GTK ツリービューの原理と使用法の分析

GtkTreeView コンポーネントは、美しい通常のリストやツリーのようなリストを作成できる高度な...

nginx のインストールが完了した後に PHP を解析できない問題の解決方法

目次方法1方法2 nginxをインストールした後、PHPコードを解析できないことがわかりました。解決...