Pythonを使って瞬時に現在時刻を取得する5つの方法

Pythonのコードスニペットと現在時刻のイラストPython
この記事は約10分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればサンプルコードを活用して機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、Pythonを使って瞬時に現在時刻を取得する5つの方法を習得することができるようになります。

それぞれの方法に対して詳細な説明とサンプルコードを用意しました。

Pythonを始めたばかりの方でも理解できるように、各関数やモジュールの基本的な使い方から説明します。

さらに、各方法の注意点や対策、カスタマイズの方法も併せて説明します。それでは、Pythonの世界に一緒に踏み込んでみましょう。

●Pythonとは

Pythonは、簡潔で読みやすいコードを書くことができるプログラミング言語です。

Webアプリケーション開発からデータ分析、AI開発まで、幅広い分野で利用されています。

○Pythonの特徴

Pythonの主な特徴は次の通りです。

  1. シンプルで簡潔: Pythonのコードはシンプルで簡潔なため、読みやすく、また書きやすいです。
  2. 豊富なライブラリ: Pythonは非常に多くのライブラリを持っていて、その多くがあらかじめ標準で提供されています。
    そのため、さまざまな問題を効率的に解決することができます。
  3. ポータビリティ: Pythonはクロスプラットフォーム対応しているため、Windows、Mac、Linuxなど様々な環境で実行することが可能です。

これらの特徴から、Pythonは初心者からプロの開発者まで幅広いユーザーに利用されています。

●Pythonで現在時刻を取得する方法

Pythonで現在時刻を取得する方法はいくつかあります。

ここでは、その中から5つの方法をピックアップして紹介します。

○方法1:timeモジュールを使用する

Pythonの標準ライブラリに含まれているtimeモジュールを使う方法です。

timeモジュールのtime関数を使うと、1970年1月1日 00:00:00 UTCからの経過秒数を取得できます。

□サンプルコード1

下記のサンプルコードでは、timeモジュールのtime関数を使って現在時刻を取得しています。

import time

# 現在時刻を取得
current_time = time.time()

print("現在時刻:", current_time)

このサンプルコードを実行すると、1970年1月1日 00:00:00 UTCから現在までの経過秒数が表示されます。

これはUNIXタイムスタンプまたはエポックタイムと呼ばれ、一般的に秒単位で時間を表します。

ただし、この形式では日時の情報を直感的に理解するのは難しいでしょう。

より人間が理解しやすい形式に変換するには、localtime関数やgmtime関数を使用します。

○方法2:datetimeモジュールを使用する

Pythonの標準ライブラリの一つであるdatetimeモジュールを使う方法です。

datetimeモジュールのdatetimeクラスには現在の日時を取得するためのnowメソッドが用意されています。

□サンプルコード2

下記のサンプルコードでは、datetimeモジュールのdatetimeクラスのnowメソッドを使用して現在時刻を取得します。

from datetime import datetime

# 現在時刻を取得
current_time = datetime.now()

print("現在時刻:", current_time)

このサンプルコードを実行すると、現在の日時が’年-月-日 時:分:秒.マイクロ秒’の形式で表示されます。

これはtimeモジュールを使用した方法と比べて、より直感的に日時情報を理解することができます。

○方法3:strftime関数を使用する

時間を特定のフォーマットで文字列として取得したい場合、strftime関数を使用します。

strftime関数は、datetimeモジュールのdatetimeクラスやtimeモジュールの構造化時間(time.struct_time)から使用することができます。

□サンプルコード3

下記のサンプルコードでは、strftime関数を使用して現在時刻を’年/月/日 時:分:秒’の形式で取得します。

from datetime import datetime

# 現在時刻を取得
current_time = datetime.now()

# 年/月/日 時:分:秒の形式に変換
formatted_time = current_time.strftime("%Y/%m/%d %H:%M:%S")

print("現在時刻:", formatted_time)

このサンプルコードを実行すると、現在の日時が’年/月/日 時:分:秒’の形式で表示されます。

strftime関数の引数には、表示したい時間のフォーマットを指定します。

‘%Y’は4桁の年を、’%m’は2桁の月を、’%d’は2桁の日を、’%H’は24時間制の2桁の時を、’%M’は2桁の分を、’%S’は2桁の秒を表します。

○方法4:pytzライブラリを使用する

時間帯を考慮した現在時刻を取得するには、pytzライブラリを使用します。pytzライブラリは、世界各地の時間帯をサポートしています。

□サンプルコード4

下記のサンプルコードでは、pytzライブラリを使用して日本時間の現在時刻を取得します。

from datetime import datetime
import pytz

# 日本時間のタイムゾーンを取得
jst = pytz.timezone('Asia/Tokyo')

# 現在時刻を取得
current_time = datetime.now(jst)

print("現在時刻:", current_time)

このサンプルコードを実行すると、日本時間の現在の日時が表示されます。

時間帯は’大陸/都市’の形式で指定します。ここでは’Asia/Tokyo’を指定して、日本時間の現在時刻を取得しています。

○方法5: dateutilライブラリを使用する

dateutilライブラリを使用すると、日時の解析、算術、フォーマット変換など、高度な日時処理を行うことができます。

ここでは、現在のUTC時刻を取得する方法を紹介します。

□サンプルコード5

下記のサンプルコードでは、dateutilライブラリのtzモジュールを使用してUTCの現在時刻を取得します。

from datetime import datetime
from dateutil import tz

# UTCのタイムゾーンを取得
utc_tz = tz.tzutc()

# 現在時刻を取得
current_time = datetime.now(utc_tz)

print("現在時刻:", current_time)

このサンプルコードを実行すると、UTCの現在の日時が表示されます。

dateutilライブラリはpytzライブラリと同様に、時間帯を考慮した日時処理が可能ですが、より多機能で直感的なAPIを提供しています。

●各方法の注意点と対策

以上で紹介した5つの方法にはそれぞれ注意点があります。

ここでは、各方法の注意点とその対策について説明します。

○方法1の注意点と対策

timeモジュールのtime関数で取得した時刻はUNIXタイムスタンプであり、これは人間が理解しにくい形式です。

また、UNIXタイムスタンプはUTCを基準としていますので、地域による時差が反映されません。

この問題を解決するためには、UNIXタイムスタンプをlocaltime関数やgmtime関数で構造化時間(time.struct_time)に変換します。

これにより、年や月、日、時、分、秒などの情報を取得することができます。

○方法2の注意点と対策

datetimeモジュールのdatetimeクラスのnowメソッドで取得した時刻は、実行環境のシステム設定に依存します。

したがって、同じコードでも異なる環境で実行すると、異なる結果が得られることがあります。

これを避けるためには、pytzライブラリやdateutilライブラリを使用して明示的に時間帯を指定します。

○方法3の注意点と対策

strftime関数を使用して時刻を文字列化する際には、フォーマット文字列を正しく指定する必要があります。

例えば、’%Y’を’%y’に間違えると、4桁の年が2桁になってしまいます。

このような問題を防ぐためには、フォーマット文字列を確認するか、datetimeモジュールのisoformatメソッドを使用してISO 8601形式の文字列を生成します。

○方法4の注意点と対策

pytzライブラリで時間帯を指定する際には、存在する時間帯を正しく指定する必要があります。

存在しない時間帯を指定するとエラーが発生します。

これを避けるためには、pytzライブラリのall_timezones属性を確認して、正しい時間帯を選択します。

○方法5の注意点と対策

dateutilライブラリのtzモジュールで時間帯を指定する際には、pytzライブラリと同様に存在する時間帯を正しく指定する必要があります。

また、dateutilライブラリは標準ライブラリではないため、使用する前にインストールが必要です。

これを避けるためには、pipコマンドでdateutilライブラリをインストールします。

●カスタマイズの方法

以上で紹介した方法を基に、さらに現在時刻の取得をカスタマイズする方法をいくつか紹介します。

○カスタマイズ例1:時刻表示のフォーマットを変更する

strftime関数を使用すれば、時刻表示のフォーマットを自由に変更することができます。

□サンプルコード6

下記のサンプルコードでは、strftime関数を使って現在時刻を ‘年-月-日 時:分:秒’ のフォーマットで表示します。

from datetime import datetime

# 現在時刻を取得
current_time = datetime.now()

# 時刻を '年-月-日 時:分:秒' のフォーマットで表示
formatted_time = current_time.strftime('%Y-%m-%d %H:%M:%S')

print("現在時刻:", formatted_time)

このサンプルコードを実行すると、現在の日時が ‘2023-07-06 12:34:56’ のような形式で表示されます。

この形式は、よくログのタイムスタンプやデータベースの日時フィールドで使用される形式です。

○カスタマイズ例2:タイムゾーンを設定する

日本時間やUTCなど、特定の時間帯の現在時刻を取得するためには、pytzライブラリやdateutilライブラリを使用してタイムゾーンを設定します。

□サンプルコード7

下記のサンプルコードでは、pytzライブラリを使用してニューヨーク時間の現在時刻を取得します。

from datetime import datetime
import pytz

# ニューヨーク時間のタイムゾーンを取得
ny_tz = pytz.timezone('America/New_York')

# 現在時刻を取得
current_time = datetime.now(ny_tz)

print("現在時刻:", current_time)

このサンプルコードを実行すると、ニューヨーク時間の現在の日時が表示されます。時間帯は’大陸/都市’の形式で指定します。

ここでは’America/New_York’を指定して、ニューヨーク時間の現在時刻を取得しています。

○カスタマイズ例3:現在の日付を取得する

現在時刻だけでなく、現在の日付だけを取得することも可能です。

□サンプルコード8

下記のサンプルコードでは、datetimeモジュールのdateメソッドを使用して現在の日付を取得します。

from datetime import datetime

# 現在の日付を取得
current_date = datetime.now().date()

print("現在の日付:", current_date)

このサンプルコードを実行すると、現在の日付が ‘2023-07-06’ のような形式で表示されます。

この形式は、特定の日を参照する際に便利です。

まとめ

以上、Pythonを使って瞬時に現在時刻を取得する5つの方法を紹介しました。

また、それぞれの方法の注意点と対策、カスタマイズの例を解説しました。

Pythonには便利な標準ライブラリが豊富に備わっており、それを使うことで現在時刻の取得や時間帯の指定、日付の取得といった操作を簡単に行うことができます。

しかしながら、これらの操作は実行環境やフォーマットの指定によって結果が異なる場合があるため、それぞれの注意点を理解した上で使用することが重要です。

また、必要に応じて外部ライブラリを使用することで、より柔軟な操作が可能になります。

Pythonの世界は深く、その中で時間に関連する機能は特に広範で複雑です。

しかし、これを理解し使いこなせるようになると、ログのタイムスタンプの生成やスケジューリング、データのタイムスタンプ比較など、さまざまな場面で大いに役立ちます。

この記事が、Pythonでの現在時刻の取得方法やその応用について理解を深める一助となれば幸いです。