記事ディレクトリ
よく使われる日付と時刻の形式 (日付形式) の紹介
日付と時刻の形式はコンピュータ サイエンスの基本概念であり、プログラミング、データベース管理、およびデータ処理に関連するその他の分野で広く使用されています。この記事では、さまざまな一般的な日付と時刻の形式について詳しく説明し、いくつかの例を示します。
ISO 8601 日付時刻形式
ISO 8601 は、国際標準化機構によって開発された日付と時刻の表現であり、その一般的な形式は ですYYYY-MM-DDTHH:MM:SS
。
たとえば、2021-12-31T23:59:59
2021年12月31日の23時59分59秒を意味します。
YYYY-MM
ISO 8601 では、や などの日付の短縮形の使用も許可されていますYYYYMM
。
from datetime import datetime
now = datetime.now()
print(now.isoformat())
UNIX タイムスタンプ
UNIX タイムスタンプ (またはエポック タイム) は、1970 年 1 月 1 日 (UTC/GMT 深夜 0 時) からの秒数であり、うるう秒はカウントされません。これは、世界的に受け入れられている日付と時刻の表現です。
import time
timestamp = time.time()
print(timestamp)
RFC 3339 日付時刻形式
RFC 3339 は、主にインターネット プロトコルと標準で使用される日付と時刻の表現形式を定義します。これは ISO 8601 のサブセットであり、いくつかの特定の規定があります。
例: は、1985-04-12T23:20:50.52Z
1985 年 4 月 12 日の 23:20:50.52 の UTC 時間を示します。
参照: RFC 3339 - インターネット上の日付と時刻: タイムスタンプ
from datetime import datetime
now = datetime.now()
print(now.strftime("%Y-%m-%dT%H:%M:%S.%fZ"))
ANSI Casctime()
スタイル
ANSI C で定義されている関数asctime()
を使用すると、構造化された時刻を読みやすい文字列形式、つまり「Day Mon DD HH:MM:SS YYYY\n」に変換できます。
たとえば、Sun Sep 16 01:03:52 1973\n
1973 年 9 月 16 日、日曜日の 01:03:52 を意味します。
#include <time.h>
#include <stdio.h>
int main() {
time_t rawtime;
struct tm * timeinfo;
time (&rawtime);
timeinfo = localtime (&rawtime);
printf ("Current local time and date: %s", asctime(timeinfo));
return 0;
}
さまざまな分野での日付と時刻の形式の応用
さまざまな日付と時刻の形式がさまざまな分野で広く使用されています。たとえば、UNIX タイムスタンプは単純に整数として表現できるため、プログラミングやデータベースで広く使用されています。ISO 8601 および RFC 3339 形式は、可読性が高く一貫性があるため、ネットワーク プロトコルや API インターフェイスでよく使用されます。
さまざまな日付と時刻の形式を理解し、さまざまなシナリオでのアプリケーションを習得することは、コンピューター サイエンス、ソフトウェア エンジニアリング、データ分析などの分野の専門家にとって非常に必要です。
参考:日付と時刻の形式
ファイル名に日付と時刻の形式を適用する
ファイル名に日付と時刻を使用すると、特に時間に敏感な大量のデータ (ログ ファイル、バックアップ ファイルなど) を扱う場合に、ファイルの整理や並べ替えに役立ちます。:
ただし、ファイル システムでは特殊文字 ( やなど)に制限がある場合があるため、すべての日付/時刻形式がファイル名での使用に適しているわけではありません/
。さらに、意味のある順序を提供する日付/時刻形式を選択することが重要です。
ISO 8601 日付と時刻の形式 (簡易版)
ISO 8601 の完全な形式には特殊文字:
と が含まれておりT
、一部のファイル システムでは問題が発生する可能性があります。ただし、日付と時刻を連続する数字の文字列として表す ISO 8601 形式の簡易バージョンを使用できます。
たとえば、20211231T235959
2021年12月31日の23時59分59秒を意味します。
from datetime import datetime
now = datetime.now()
print(now.strftime("%Y%m%dT%H%M%S"))
-
「特殊文字」の説明
T
:
一部のファイル システムおよびオペレーティング システムでは、T
それらは特殊文字ではなく、ファイル名の一部として受け入れられます。ただし、ファイル名の命名に日時形式を使用することについて議論する場合、T
これは ISO 8601 標準で特別な意味を持ち、ファイル名の読みやすさに影響を与える可能性があるため、「特別」であると考えられます。ISO 8601 日付/時刻形式では、
T
日付と時刻を区別するために使用される区切り文字です。たとえば、2021-12-31T23:59:59
2021 年 12 月 31 日の 23 時間 59 分 59 秒を表します。ただし、この形式をファイル名に使用すると、
T
混乱や誤解が生じる可能性があります。まず、T
ファイル名の長さが長くなりますが、追加情報は提供されません (日付と時刻の順序が十分に明確であるため)。第 2 に、T
たとえば他のファイル命名規則と競合する可能性があり、場合によってはT
ファイルのバージョン番号またはタイプの識別として誤解される可能性があります。したがって、ファイル名に日時形式を使用する場合、通常はそれを取り除き
T
、日付と時刻を表す連続した数字の文字列を使用します20211231235959
。これにより、日付と時刻の自然な順序が維持され、混乱が避けられますT
。
UNIX タイムスタンプ
UNIX タイムスタンプは、ファイル名で日付と時刻を表す簡潔な方法です。ただし、UNIX タイムスタンプは可読性が低く、人間が読み取るには適していないため、プログラム間でデータを交換する場合によく使用されます。
import time
timestamp = time.time()
print(int(timestamp))
年月日時分秒形式
もう 1 つの一般的な方法は、年、月、日、時、分、秒 (YYYYMMDDHHMMSS) 形式を使用することです。これにより、特殊文字の使用が回避され、日付と時刻の自然な順序が維持されます。
たとえば、20211231235959
2021年12月31日の23時59分59秒を意味します。
from datetime import datetime
now = datetime.now()
print(now.strftime("%Y%m%d%H%M%S"))
要約すると、ファイル名にどの日付と時刻の形式を選択するかは、特定のアプリケーション シナリオによって異なります。ほとんどの場合、簡略化された ISO 8601 形式と年、月、日、時、分、秒の形式は、問題の原因となる特殊文字を避けながら日付と時刻の自然な順序を保持するため、適切な選択となります。