日付と時刻をさまざまな形式で表示することは、プログラムで最も一般的に使用される機能です。 Python は、時間処理用の標準関数ライブラリ datetime を提供します。これは、単純なものから複雑なものまで、一連の時間処理方法を提供します。
datetime ライブラリはシステムから時刻を取得し、ユーザーが選択した形式で出力できます。
datetime ライブラリはグリニッジ標準時に基づいており、毎日は 3600X24 秒で正確に定義されます。ライブラリには、datetime.MINYEAR と datetime.MAXYEAR という 2 つの定数が含まれています。これらは、それぞれ、datetime が表すことができる最小年と最大年、およびその値を表します。はそれぞれ ##、#1 と 9999 です。
datetime ライブラリは、さまざまな日付と時刻の式をクラスの形式で提供します。
(1) datetime.date: 年、月、日などを表すことができる日付表現クラス。(2) datetime.time: 時間、分、秒、ミリ秒などを表すことができる時間表現クラス。
(3) datetime.dateime: 日付と時刻を表すクラス。関数は日付と時刻のクラスをカバーします。
(4) datetime.timedelta: 時間間隔に関連するクラス。
(5) datetime.tzinfo: タイムゾーンに関する情報表現クラス。
datetime.daetimeクラスが最も表現形式が豊富なので、ここではこのクラスの使い方を中心に紹介します。 datetime クラスを使用するには、import 予約語を使用する必要があります。datetime クラスを参照する方法は次のとおりです:
from datetime import datetime
1970年1月1 #00:00:00 開始から現在までの時間を秒単位で正確にカウントすることは、UNIX オペレーティング システムの初期の設計習慣であり、その後も行われます。すべてのコンピュータ システムで使用されます。 現在のコンピューター ハードウェアとシステムはすべて
64ビットです。この時間カウントの保存に 64 ビットを使用すると、最大距離は 1970 で表すことができます。 年。##1 1 日から始まる 264 秒、##1 年 ## の合計秒数#365 日は約 1.9x224 であるため、64 コンピュータ システムは西暦約 239 までの時間を表すことができます。私は、N# を信じています。 ## 子孫が何世代にもわたって、たとえ地球が滅びるその日まで、不正確な時間を心配する必要はありません。 ——なぜ 1970、月 1 から開始することを選択するのですか? ——どの日から開始することを選択しても、それらはすべて同じ問題ですよね?
3. datetime ライブラリは、datetime クラス (datetime.datetime クラス、以下
datetime オブジェクトを作成し、次にオブジェクトのメソッドとプロパティを通じて時刻を表示することです。 datetime オブジェクトを作成するには、datetime.now()、datetime.utcnow()、および datetime.datetime() の 3 つのメソッドがあります。 。 1. datetime.now() を使用して、現在の日付と時刻オブジェクトを取得します。使用方法は次のとおりです: datetime.now()
from datetime import datetime today = datetime.now() print(today)
2022-05-01 20:32:41.772021
2. datetime を使用します。 utcnow() 現在の日付と時刻に対応する
UTC(世界標準時) 時刻オブジェクトを取得します 使用方法は次のとおりです:型。現在の日付と時刻を表す関数: ## を返します。 #datetimedatetime.utcnow ()ログイン後にコピー
UTC 表現 (マイクロ秒単位の精度)。パラメータ: なし この関数を呼び出すと、実行結果は次のようになります:
from datetime import datetime today = datetime.utcnow() print(today)
3.datetime。 now() と datetime utcnow()
はどちらもdatetimeを直接使用して日付を構築することもできます。次のようなメソッドを使用して time オブジェクトを使用します。型のオブジェクトを返します。また、
datetime()
datetime (year, month, day, hour=0, minute=0,second=0, microsecond=0)
MINYEAR <= year
<=MAXYEAR
month: 指定された月、1 <= month <= 12
day: 指定した日付 1 <= day <=月に対応する日付の上限
hour: 指定された時間、0 <= hour < 24
minutes :指定された分数、 0 <= minutes < 60
second:指定的秒数,0 <= second < 60
microsecond:指定的微秒数,0 <= microsecond < 1000000
其中,hour、minute、second、microsecond 参数可以全部或部分省略。
调用 datetime() 函数直接创建一个 datetime 对象,表示 2022 年 5 日 1 日 20:33,32 秒 7 微妙,执行结果如下:
from datetime import datetime someday = datetime(2022, 5, 1, 20, 43, 32, 7) print(someday)
2022-05-01 20:43:32.000007
到此,程序已经有了一个 datetime 对象,进一步可以利用这个对象的属性显示时间,为了区别 datetime 库名,采用上例中的 someday 代替生成的 datetime 对象,常用属性如下表所示。
属性 | 描述 |
someday.min | 固定返回 datetime 的最小时间对象,datetime(1,1,1,0,0) |
someday.max | 固定返回 datetime 的最大时间对象,datetime(9999,12,31,23,59,59,59,999999) |
someday.year | 返回 someday 包含的年份 |
someday.month | 返回 someday 包含的月份 |
someday.day | 返回 someday 包含的日期 |
someday.hour | 返回 someday 包含的小时 |
someday.minute | 返回 someday 包含的分钟 |
someday.second | 返回 someday 包含的秒钟 |
someday.microsecond | 返回 someday 包含的微妙值 |
datetime 对象有 3 个常用的时间格式化方法,如下表所示
属性 | 描述 |
someday.isoformat() | 采用 ISO 8601 标准显示时间 |
someday.isoweekday() | 根据日期计算星期后返回 1~7,对应星期一到星期日 |
someday.strftime(format) | 根据格式化字符串 format 进行格式显示的方法 |
isoformat() 和 isoweekday() 方法的使用如下:
from datetime import datetime today = datetime.now() print(today.isoformat()) print(today.isoweekday())
程序执行结果如下:
2022-05-01T21:00:28.392304
7
strftime() 方法是时间格式化最有效的方法,几乎可以以任何通用格式输出时间。例如下面的例子,用该方法输出特定格式时间。
from datetime import datetime today = datetime.now() print(today.strftime("%Y-%m-%d %H : %M : %S"))
程序执行结果如下:
2022-05-01 21 : 04 : 23
下表是 strftime() 方法的格式化控制符。
格式化字符串 | 日期/时间 | 值范围和实例 |
%Y | 年份 | 0001~9999 |
%m | 月份 | 01~12 |
%B | 月名 | January~December |
%b | 月名缩写 | Jan~Dec |
%d | 日期 | 01~31 |
%A | 星期 | Monday~Sunday |
%a | 星期缩写 | Mon~Sun |
%H | 小时(24 h 制) | 00~23 |
%M | 分钟 | 00~59 |
%S | 秒 | 00~59 |
%x | 日期 | 月/日/年,例如,01/01/2022 |
%X | 时间 | 时 :分:秒,例如,19 : 09 : 31 |
strftime() 格式化字符串的数字左侧会自动补零,上述格式也可以与 print() 的格式化函数起使用,例如:
from datetime import datetime now = datetime.now() print(now.strftime("%Y- %m- %d")) print(now.strftime("%A,%d. %B %Y %H: %M%p")) print("今天是 {0:%Y} 年 {0:%m} 月 {0:%d} 日".format(now))
程序执行结果如下:
2022- 05- 01
Sunday,01. May 2022 21: 21PM
今天是 2022 年 05 月 01 日
datetime 库主要用于对时间的表示,从格式化角度掌握 strftime() 函数已经能够处理很多情况了。建议读者在遇到需要处理时间的问题时采用 datetime 库,简化格式输出和时间的维护。
以上がPython 日時ライブラリの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。