Python の dateutil モジュールを理解する (例付き)

不言
リリース: 2018-12-04 17:31:12
転載
6209 人が閲覧しました

この記事では、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
ログイン後にコピー
    # です。
  • ##dateutil を使用して文字列を解析する

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
ログイン後にコピー

    日付のリストを取得します。連続 5 週間の火曜日の日付を取得する必要がある場合は、次のようになります。 dateutil を使用すると簡単に実現できます
  • 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!