この記事では、Pythonのstrftime()関数の動作とそのバリエーションを理解することにします。
では、さっそく始めましょう。
Pythonには、データに対して様々な機能を実装するための関数のクラスタを持つ、様々なモジュールがあります。
Pythonのtimeモジュールは、さまざまなタイムスタンプに関する操作を実行するために使用されます。
さらに、Python strftime()関数
は、様々な形式の時刻を受け取り、標準的な形式で時刻を表現した文字列を返します。
この記事もチェック:Pythonのstrptimeを使って文字列を日付時刻に変換する方法
変形1: Python strftime() で現在の時刻を取得する
Python strftime() 関数は、フォーマットコードに従って適切な形式で現在のタイムスタンプを取得するために datetime モジュールと一緒に使用することができます。
構文は以下の通りです。
datetime.now().strftime( 'format codes' )
|
つまり、フォーマットコードとは、タイムスタンプを適切かつ標準的な方法で表現するために使用される定義済みのコードのことです。
この記事では、フォーマットコードについてより深く理解することになるでしょう。
例えば、以下の様になります。
from datetime import datetime
current_timestamp = datetime.now()
tym = current_timestamp.strftime( "%H:%M:%S" )
date = current_timestamp.strftime( "%d-%m-%Y" )
print ( "Current Time:" ,tym)
print ( "Current Date:" ,date)
|
上記の例では、`datetime.now()’ メソッドを使って現在のタイムスタンプを取得し、それを strftime() 関数に渡してタイムスタンプを標準的なフォーマットで表現しています。
以下のような意味を持つフォーマットコードを使用しています。
-
%H
– 24時間形式の「時間」を表します。 -
%H
– ‘時’を24時間形式で表す。 *%M
– ‘分’を10進数で表す。 -
%S
– タイムスタンプの ‘秒’ 部分を表します。
結果を出力すると、以下の様になります。
Current Time: 16 : 28 : 40
Current Date: 28 - 04 - 2020
|
Variant 2: Python strftime() であらかじめタイムスタンプを定義する
時々、過去のデータセットのタイムスタンプを表示する必要があることがあります。
Pythonのstrftime()関数を使えば、同じことができます。
datetime.fromtimestamp()`メソッドは、定義済みのタイムスタンプを取得するために使用されます。
さらに、strftime()関数は、上で説明したように、様々なフォーマットコードを用いて標準的な形式でそれを表現するために使用することができます。
構文は以下の様な感じです。
datetime.fromtimestamp(timestamp).strftime() |
例えば、以下の様になります。
from datetime import datetime
given_timestamp = 124579923
timestamp = datetime.fromtimestamp(given_timestamp)
tym = timestamp.strftime( "%H:%M:%S" )
date = timestamp.strftime( "%d-%m-%Y" )
print ( "Time according to the given timestamp:" ,tym)
print ( "Date according to the given timestamp:" ,date)
|
結果は以下の通りです。
Time according to the given timestamp: 03 : 02 : 03
Date according to the given timestamp: 13 - 12 - 1973
|
Python strftime() 関数で異なるフォーマットコードを使用する場合
Pythonのstrftime()関数は、タイムスタンプを標準的で維持されたフォーマットで表現するためにフォーマットコードを使用します。
さらに、タイムスタンプから日、時間、週などを分離して表示するためにフォーマットコードを使用することができます。
いくつかの例を使って、フォーマットコードを理解しましょう。
例1: フォーマットコード – ‘%A’は、ローカルタイムの現在の日付を表示します。
from time import strftime
day = strftime( "%A" )
print ( "Current day:" , day)
|
結果は以下の通りです。
Current day: Tuesday |
例2: フォーマットコード – ‘%c’ で、現在のローカルタイムを表示します。
フォーマットコード-‘%c’は、現在のローカルタイムを表示するために使われ、以下のフォーマットに従っています。
日 月 日 時:分:秒 年
from time import strftime
day = strftime( "%c" )
print ( "Current timestamp:" , day)
|
出力されます。
出力:
Current timestamp: Tue Apr 28 16:42:22 2020 |
例3:フォーマットコード-‘%R’を使って、24時間形式の時刻を表示します。
from time import strftime
day = strftime( "%R" )
print ( "Current time in a 24-hour format:" , day)
|
結果を出力すると、以下の様になります。
Current time in a 24 - hour format : 16 : 44
|
例 4: フォーマットコード – ‘%r’ は、H:M:S 形式で時刻を表示し、AM または PM のような説明を表示します。
from time import strftime
day = strftime( "%r" )
print ( "Current time -- hours:mins:seconds" , day)
|
結果は、以下の通りになります。
Current time - - hours:mins:seconds 05 : 05 : 19 PM
|
例 5:
from time import strftime
day = strftime( "%x -- %X %p" )
print ( "Local date and time:" , day)
|
上記の例では、フォーマットコード ‘%x’ を使ってローカルのタイムスタンプを日付で表し、 ‘%X’ を使ってローカルの時刻を H:M:S の形式で表しています。
p’ フォーマットコードは、タイムスタンプが AM と PM のどちらに属するかを表すのに使われる。
結果を出力すると、以下の様になります。
Local date and time: 04 / 28 / 20 - - 17 : 08 : 42 PM
|
まとめ
この記事では、Pythonのstrftime()関数の動作と、使用される書式コードについて説明しました。
使用可能なフォーマットコードの一覧を理解するために、参考文献の中に公式ドキュメントへのリンクがあります。