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

推薦する

Element-ui NavMenuサブメニューを使用して再帰的に生成する場合のエラーの詳細な説明

ナビゲーションバーのサブメニューを再帰的に生成すると、メニューは正常に生成できるが、マウスをホバーす...

MySQL マスタースレーブレプリケーションの実践の詳細説明 - ログポイントに基づくレプリケーション

ログポイントベースのレプリケーション1. マスターデータベースとスレーブデータベースに専用のレプリケ...

Dockerコンテナのホスト間通信におけるダイレクトルーティングの詳細な説明

概要Docker 自体の現在のデフォルト ネットワークについては、単一ホスト上の異なる Docker...

MYSQL8.0.13 無料インストール版 設定チュートリアル例 詳細説明

1. ダウンロード、例として8.0を取り上げますダウンロードアドレス: https://dev.my...

JavaScript スタイル オブジェクトと CurrentStyle オブジェクトのケース スタディ

1. スタイルオブジェクトスタイル オブジェクトは単一のスタイル宣言を表し、スタイルが適用されている...

GNU Parallelの具体的な使用法

それは何ですか? GNU Parallel は、1 台以上のコンピュータでコンピューティング タスク...

MySQL でパーティション分割後にクエリを実装するために MRG_MyISAM (MERGE) を使用する例

大量のデータベース データを最適化することは非常に高度な科学であり、開発者が習得する必要がある専門的...

Rx レスポンシブプログラミングについての簡単な説明

目次1. 観察可能2. 高階関数3. エクスプレスボックスモデル3.1. エクスプレスボックスモデル...

vue3 コンポーネント通信方法の概要と例

vue3コンポーネントの通信モードは次のとおりです。小道具$放出$expose / 参照$属性vモデ...

Linux で特定のプログラムを見つけるための whereis の例の詳細な説明

Linuxは特定のプログラムを見つけますwhereis コマンドは主にプログラム ファイルを検索し、...

Javascript 文字列メソッドの詳細な説明

目次文字列の長さ: 長さcharAt() charCodeAt()文字列に値が含まれているかどうかを...

MySQLのタイムゾーンを表示および設定する方法

1. データベースのタイムゾーンを確認する '%time_zone' のような変数を...

Vue+js 矢印をクリックして画像を切り替える

この記事の例では、矢印をクリックして画像を切り替えるVue + jsの具体的なコードを共有しています...

Windows での MySQL インストール チュートリアル (画像とテキスト付き)

MySQL インストール手順 MySQL は、スウェーデンの MySQL AB によって開発された...

Docker 構成コンテナの場所とヒントのまとめ

Docker の使用に関するヒント1. 停止したDockerコンテナをすべてクリーンアップする停止し...