【Python】Python 〜 croniter 〜

◾️はじめに

Pythonのcroniterについて調べて、試したので、
記録しておく

目次

【1】croniter
【2】インストール
 補足:pyawscron (AWSのCron形式)
【3】サンプル
 例1:croniter
【4】Tips
 1)UTC形式にする

【1】croniter

* croniter(クロニター) =「cron(クローン)」 + 「iterator(イテレータ)」
* LinuxタスクスケジューラのcronのPythonライブラリ

 => cronに関しては、以下の関連記事を参照のこと

cron / crontab 〜 入門編 〜
https://dk521123.hatenablog.com/entry/2016/10/25/230650
cron / crontab 〜 基本編 〜
https://dk521123.hatenablog.com/entry/2017/08/20/184005
cron / crontab 〜 あれこれ編 〜
https://dk521123.hatenablog.com/entry/2021/04/01/160946

【2】インストール

pip install croniter
# pip install pytz

補足:pyawscron (AWSのCron形式)

pip install pyawscron

【3】サンプル

例1:croniter

from croniter import croniter
from datetime import datetime

# ex 2025/10/30 9:00:00
base_time = datetime(2025, 10, 30, 9, 0, 0)
# Everyday AM 10:30
cron_expression = '30 10 * * *'

iterator = croniter(cron_expression, base_time)

# get_next: 次の実行時刻を取得
next_run_dt = iterator.get_next(datetime)
print(f"Next date (datetime): {next_run_dt}") 
# Next date (datetime): 2025-10-30 10:30:00

# get_prev: 前の実行時刻を取得
prev_run_dt = iterator.get_prev(datetime)
print(f"Prev date (datetime): {prev_run_dt}") 
# Prev date (datetime): 2025-10-29 10:30:00

【4】Tips

1)UTC形式にする

* .replace(tzinfo=timezone.utc)で指定

サンプル

from croniter import croniter
from datetime import datetime, timezone

# get_next: 次の実行時刻を取得
next_run_dt = iterator.get_next(datetime).replace(tzinfo=timezone.utc)
print(f"Next date (datetime): {next_run_dt}") 
# Next date (datetime): 2025-10-30 10:30:00+00:00

参考文献

https://omomuki-tech.com/archives/1413
https://dev.classmethod.jp/articles/python-cron/
https://qiita.com/QUANON/items/7894ac327863e231dbd1

関連記事

Python ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2014/08/07/231242
Python ~ 基本編 / 日付・日時 ~
https://dk521123.hatenablog.com/entry/2019/10/14/121909
Python ~ 基本編 / 日付・日時あれこれ ~
https://dk521123.hatenablog.com/entry/2022/02/01/000000
cron / crontab 〜 入門編 〜
https://dk521123.hatenablog.com/entry/2016/10/25/230650
cron / crontab 〜 基本編 〜
https://dk521123.hatenablog.com/entry/2017/08/20/184005
cron / crontab 〜 あれこれ編 〜
https://dk521123.hatenablog.com/entry/2021/04/01/160946