ホームページ >バックエンド開発 >Python チュートリアル >Python の dateutil モジュールを理解する (例付き)
この記事では、Python の dateutil モジュールについて理解することができます (例とともに)。これには特定の参考値があります。必要な友人は参照できます。お役に立てば幸いです。help 。
最近、プロジェクト チームで Python プロジェクトに携わったところ、すべての形式で iso8601 が使用されていることがわかりました。同僚は、これはプロジェクトの国際化のためだと婉曲的に言いました (実際には、この番号はユーザーの数はせいぜい数百人です)まあ、彼らはすべて社内に集中していますが、国際化はどこから来るのでしょうか、ははは!)。そこで、時刻形式について詳しく調査することにし、Python の dateutil モジュールを発見しました。
DATETIME を ISO8601 形式に変換するには、isoformat() メソッドを使用するだけです。
now_time = datetime.now().isoformat()
出力は
2018-12-04T08:44:35.792445
DATETIME を解析します。文字列形式 (dateutil モジュールなし)
now_date_str = datetime.now().isoformat().split('.')[0] my_format = '%Y-%m-%dT%H:%M:%S' print(datetime.strptime(now_date_str, my_format))
これは、Python で文字列を時刻形式に変換するために最も一般的に使用されるメソッドです。出力結果は
2018-12-04 08:44:35
from dateutil.parser import parse timestamp = parse(now_date_str, fuzzy=True) print(timestamp)出力結果は上記と同じですが、この解析メソッドのあいまいさは素晴らしく、時間形式とあいまい一致できます。興味があれば、ソースコードをチェックしてみてください。
today = date.today() my_birthday = date(year=1992, month=3, day=17) print('我已经出生' + str((today - my_birthday).days) + '天')私が生まれてからの日数を直接計算でき、出力は
我已经出生9758天# です。 ##しかし、私が望むなら、私が何歳か、つまり私が生まれてから何年かを計算するとどうなりますか?
Traceback (most recent call last): 2018-12-04 08:57:08 File "F:/pythonProject/testcode/testDate.py", line 27, in <module> print((today-my_birthday).years) 2018-12-04 08:57:08 AttributeError: 'datetime.timedelta' object has no attribute 'years'
残念ながら、timedelta には年と月を取得する方法がないため、エラーが報告されました。そのため、引き続き dateutil モジュールを使用します。
from dateutil.relativedelta import relativedelta diff = relativedelta(today, my_birthday)
出力から次のことがわかります。 2 つの日付の中間を取得できます年、月、日の違い
relativedelta(years=+26, months=+8, days=+17)
print(diff.years) print(diff.months) print(diff.days)
26 8 17
from dateutil.rrule import rrule, WEEKLY pp(list(rrule(WEEKLY, count=10, dtstart=next_tuesday)))
[datetime.datetime(2018, 12, 4, 8, 59, 6), datetime.datetime(2018, 12, 11, 8, 59, 6), datetime.datetime(2018, 12, 18, 8, 59, 6), datetime.datetime(2018, 12, 25, 8, 59, 6), datetime.datetime(2019, 1, 1, 8, 59, 6), datetime.datetime(2019, 1, 8, 8, 59, 6), datetime.datetime(2019, 1, 15, 8, 59, 6), datetime.datetime(2019, 1, 22, 8, 59, 6), datetime.datetime(2019, 1, 29, 8, 59, 6), datetime.datetime(2019, 2, 5, 8, 59, 6)]
です注: dtstart は時間形式である必要があります
以上がPython の dateutil モジュールを理解する (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。