Time Control Demo
Compare SystemClock vs FixedClock, advance time
01
Sample Code
from datetime import datetime, timedelta, UTC
from psp.platform.clock import SystemClock, FixedClock
# SystemClock uses real time
system_clock = SystemClock()
print(f"System time: {system_clock.now()}")
# FixedClock freezes time for deterministic tests
fixed_time = datetime(2024, 6, 15, 12, 0, 0, tzinfo=UTC)
clock = FixedClock(fixed_time)
print(f"Fixed time: {clock.now()}") # Always 2024-06-15 12:00:00
# Advance time for testing expiration, deadlines, etc.
clock.advance(hours=2)
print(f"After +2h: {clock.now()}") # 2024-06-15 14:00:00
clock.advance(days=1)
print(f"After +1d: {clock.now()}") # 2024-06-16 14:00:00
# Set specific time
clock.set(datetime(2024, 12, 31, 23, 59, 59, tzinfo=UTC))
print(f"New Year's Eve: {clock.now()}")