
Datetime Tool
- 29 installs
- 1.9k repo stars
- Updated August 5, 2026
- openakita/openakita
Helps with ai & agent building tasks.
About
datetime-tool is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- datetime-tool
- AI & Agent Building
- AI-coding skill
Datetime Tool by the numbers
- 29 all-time installs (skills.sh)
- Ranked #9,417 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/openakita/openakita --skill datetime-toolAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 29 |
|---|---|
| repo stars | ★ 1.9k |
| Last updated | August 5, 2026 |
| Repository | openakita/openakita ↗ |
What it does
Helps with ai & agent building tasks.
Files
DateTime Tool
处理时间和日期相关的操作。
When to Use
- 用户询问当前时间或日期
- 需要格式化日期输出
- 计算两个日期之间的差值
- 时区转换
- 获取星期几、月份名称等
Instructions
获取当前时间
运行脚本获取当前时间:
python scripts/get_time.py支持的参数:
--timezone <tz>: 指定时区 (如 Asia/Shanghai, UTC)--format <fmt>: 日期格式 (如 %Y-%m-%d %H:%M:%S)
计算日期差值
python scripts/get_time.py --diff "2024-01-01" "2024-12-31"时区转换
python scripts/get_time.py --convert "2024-01-01 12:00:00" --from-tz UTC --to-tz Asia/ShanghaiOutput Format
脚本输出 JSON 格式:
{
"datetime": "2024-01-15 10:30:00",
"date": "2024-01-15",
"time": "10:30:00",
"timezone": "Asia/Shanghai",
"weekday": "Monday",
"timestamp": 1705285800
}Common Formats
| 格式 | 示例 |
|---|---|
| ISO | 2024-01-15T10:30:00+08:00 |
| 中文 | 2024年01月15日 10:30:00 |
| 美式 | 01/15/2024 |
| 欧式 | 15/01/2024 |
DateTime Tool Reference
支持的时区
常用时区:
UTC- 协调世界时Asia/Shanghai- 中国标准时间 (UTC+8)Asia/Tokyo- 日本标准时间 (UTC+9)America/New_York- 美国东部时间America/Los_Angeles- 美国太平洋时间Europe/London- 英国时间Europe/Paris- 中欧时间
日期格式代码
| 代码 | 含义 | 示例 |
|---|---|---|
%Y | 四位年份 | 2024 |
%m | 月份 (01-12) | 01 |
%d | 日期 (01-31) | 15 |
%H | 小时 (00-23) | 14 |
%M | 分钟 (00-59) | 30 |
%S | 秒 (00-59) | 45 |
%A | 星期全名 | Monday |
%a | 星期缩写 | Mon |
%B | 月份全名 | January |
%b | 月份缩写 | Jan |
%Z | 时区名称 | CST |
%z | UTC 偏移 | +0800 |
常用格式组合
# ISO 格式
"%Y-%m-%dT%H:%M:%S%z" # 2024-01-15T14:30:00+0800
# 中文格式
"%Y年%m月%d日 %H:%M:%S" # 2024年01月15日 14:30:00
# 美式格式
"%m/%d/%Y %I:%M %p" # 01/15/2024 02:30 PM
# 文件名安全格式
"%Y%m%d_%H%M%S" # 20240115_143000错误处理
脚本在遇到错误时会返回包含 error 字段的 JSON:
{
"error": "Invalid timezone: Invalid/Zone"
}常见错误:
- 无效的时区名称
- 无效的日期格式
- 日期解析失败
#!/usr/bin/env python3
"""
获取当前时间的脚本
用法:
python get_time.py [options]
选项:
--timezone <tz> 时区 (默认: 本地时区)
--format <fmt> 日期格式 (默认: %Y-%m-%d %H:%M:%S)
--diff <d1> <d2> 计算两个日期的差值
--convert <dt> 转换时间
--from-tz <tz> 源时区
--to-tz <tz> 目标时区
"""
import argparse
import json
import sys
from datetime import datetime, timedelta
from zoneinfo import ZoneInfo
def get_current_time(timezone: str = None, fmt: str = None) -> dict:
"""获取当前时间"""
if timezone:
try:
tz = ZoneInfo(timezone)
except KeyError:
return {"error": f"Invalid timezone: {timezone}"}
else:
tz = None
timezone = "local"
now = datetime.now(tz)
fmt = fmt or "%Y-%m-%d %H:%M:%S"
weekday_names = [
"Monday", "Tuesday", "Wednesday", "Thursday",
"Friday", "Saturday", "Sunday"
]
return {
"datetime": now.strftime(fmt),
"date": now.strftime("%Y-%m-%d"),
"time": now.strftime("%H:%M:%S"),
"year": now.year,
"month": now.month,
"day": now.day,
"hour": now.hour,
"minute": now.minute,
"second": now.second,
"weekday": weekday_names[now.weekday()],
"weekday_num": now.weekday(),
"timestamp": int(now.timestamp()),
"iso_format": now.isoformat(),
"timezone": timezone,
}
def calculate_diff(date1: str, date2: str) -> dict:
"""计算两个日期的差值"""
try:
d1 = datetime.fromisoformat(date1.replace('/', '-'))
d2 = datetime.fromisoformat(date2.replace('/', '-'))
except ValueError as e:
return {"error": f"Invalid date format: {e}"}
diff = abs(d2 - d1)
return {
"date1": date1,
"date2": date2,
"days": diff.days,
"seconds": diff.seconds,
"total_seconds": int(diff.total_seconds()),
"weeks": diff.days // 7,
"months_approx": diff.days // 30,
"years_approx": diff.days // 365,
}
def convert_timezone(dt_str: str, from_tz: str, to_tz: str) -> dict:
"""转换时区"""
try:
from_zone = ZoneInfo(from_tz)
to_zone = ZoneInfo(to_tz)
except KeyError as e:
return {"error": f"Invalid timezone: {e}"}
try:
dt = datetime.fromisoformat(dt_str)
dt = dt.replace(tzinfo=from_zone)
converted = dt.astimezone(to_zone)
except ValueError as e:
return {"error": f"Invalid datetime format: {e}"}
return {
"original": dt_str,
"from_timezone": from_tz,
"to_timezone": to_tz,
"converted": converted.strftime("%Y-%m-%d %H:%M:%S"),
"converted_iso": converted.isoformat(),
}
def main():
parser = argparse.ArgumentParser(description="DateTime Tool")
parser.add_argument("--timezone", "-tz", help="Timezone (e.g., Asia/Shanghai)")
parser.add_argument("--format", "-f", help="Date format string")
parser.add_argument("--diff", nargs=2, metavar=("DATE1", "DATE2"),
help="Calculate difference between two dates")
parser.add_argument("--convert", help="DateTime to convert")
parser.add_argument("--from-tz", help="Source timezone for conversion")
parser.add_argument("--to-tz", help="Target timezone for conversion")
args = parser.parse_args()
if args.diff:
result = calculate_diff(args.diff[0], args.diff[1])
elif args.convert:
if not args.from_tz or not args.to_tz:
result = {"error": "Both --from-tz and --to-tz required for conversion"}
else:
result = convert_timezone(args.convert, args.from_tz, args.to_tz)
else:
result = get_current_time(args.timezone, args.format)
print(json.dumps(result, ensure_ascii=False, indent=2))
if __name__ == "__main__":
main()
Related skills
AI & Agent Buildingagents