| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import subprocess
- def set_timezone(timezone: str) -> int:
- """使用 timedatectl 设置系统时区"""
- try:
- ret = subprocess.run(
- ["timedatectl", "set-timezone", timezone],
- check=True,
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE,
- text=True
- )
- return 0
- except subprocess.CalledProcessError as e:
- print("设置时区失败:", e.stderr)
- return -1
- def set_system_time(year, month, day, hour, minute, second=0) -> int:
- """使用 timedatectl 设置系统时间"""
- time_str = f"{year}-{month:02d}-{day:02d} {hour:02d}:{minute:02d}:{second:02d}"
- try:
- ret = subprocess.run(
- ["timedatectl", "set-time", time_str],
- check=True,
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE,
- text=True
- )
- return 0
- except subprocess.CalledProcessError as e:
- print("设置时间失败:", e.stderr)
- return -1
- def update_system_datetime(timezone, year, month, day, hour, minute, second=0):
- # 先设置时区
- if set_timezone(timezone) != 0:
- return -1
- # 再设置时间
- if set_system_time(year, month, day, hour, minute, second) != 0:
- return -2
- return 0
|