Python3 での時間の扱い (継続的な更新中...)

神は沈黙する - 個人の CSDN ブログ投稿ディレクトリ

この記事では、Python3の処理時間に関する各種ライブラリと利用シーンを紹介します。

最終更新日時: 2023.6.2
最早更新日時: 2023.6.2

1.日時ライブラリ

公式ドキュメント: datetime — 基本的な日付と時刻の型 — Python 3.11.3 ドキュメント

  1. datetime.datetime.now()
  2. datetime.datetime.today()
  3. datetime.datetime.strptime(字符串,"%Y-%m-%d")(2 番目の入力パラメーターは時刻形式です)
    2 つの日付の間の日数と月数を計算するコード例:
import datetime
def days(str1,str2):
    date1=datetime.datetime.strptime(str1,"%Y-%m-%d")
    date2=datetime.datetime.strptime(str2,"%Y-%m-%d")
    num=(date1-date2).days
    return num
 
def months(str1,str2):
    year1=datetime.datetime.strptime(str1,"%Y-%m-%d").year
    year2=datetime.datetime.strptime(str2,"%Y-%m-%d").year
    month1=datetime.datetime.strptime(str1,"%Y-%m-%d").month
    month2=datetime.datetime.strptime(str2,"%Y-%m-%d").month
    num=(year1-year2)*12+(month1-month2)
    return num

print(days('2023-5-18','2023-5-10'))
print(days('2023-5-18','2021-5-10'))

出力:

8
738

2.タイムライブラリ

  1. time.time(): 現在時刻を返します(浮動小数点値)
  2. time.localtime(secs)
  3. time.sleep(秒数): 睡眠指定時間

3. JioNLP ライブラリ: (中国語) テキストからの時間情報の抽出

正規表現で抽出します。

インストール方法:pip install jionlp

時間意味分析ドキュメント · dongrixinyu/JioNLP Wiki · GitHub
オンライン デモ: http://www.jionlp.com/jionlp_online/extract_time

サンプルコード:

import time
import jionlp as jio
time_text_list = ['2021年前两个季度', '从2018年12月九号到十五号', '2019年感恩节', '每周六上午9点到11点', '30~90日']
for time_text in time_text_list:
    print(jio.parse_time(time_text, time_base=time.time()))

出力:

# jionlp - 微信公众号: JioNLP  Github: `https://github.com/dongrixinyu/JioNLP`.
# jiojio - `http://www.jionlp.com/jionlp_online/cws_pos` is available for online trial.
# jiojio - Successfully load C funcs for CWS and POS acceleration.
{'type': 'time_span', 'definition': 'accurate', 'time': ['2021-01-01 00:00:00', '2021-06-30 23:59:59']}
{'type': 'time_span', 'definition': 'accurate', 'time': ['2018-12-09 00:00:00', '2018-12-15 23:59:59']}
{'type': 'time_point', 'definition': 'accurate', 'time': ['2019-11-28 00:00:00', '2019-11-28 23:59:59']}
{'type': 'time_period', 'definition': 'accurate', 'time': {'delta': {'day': 7}, 'point': {'time': ['2023-06-03 09:00:00', '2023-06-03 11:00:00'], 'string': '周六上午9点到11点'}}}
{'type': 'time_delta', 'definition': 'blur', 'time': [{'day': 30.0}, {'day': 90.0}]}

ドキュメントを読むと、time_span は大まかに期間 (開始と終了は特定の時間) を指し、time_point は時点、time_period は期間、time_delta は時間の長さを表します。

4. datefinder ライブラリ: (英語) テキストから時刻情報を抽出します。

pypi ウェブサイト: datefinder PyPI
pip インストール方法:pip install datefinder

サンプルコード:

dt=list(datefinder.find_dates("ASPLOS会议的官网是https://www.asplos-conference.org/,2023年论文提交截止时间是2022年10月20日。"))

datetime オブジェクトのリストを返します。

5.pytzライブラリ

一つ言っておきたいのは、このライブラリが何をしているのか実際には理解できないのですが、おそらく統一タイムゾーンか何かなのでしょうか?
とにかく、インストール中についでにインストールする必要がある他のパッケージがいくつかあります。
パイツPyPI

おすすめ

転載: blog.csdn.net/PolarisRisingWar/article/details/130995979
おすすめ