bttf
brew install bttf
v0.1.4
Unlicense OR MIT
CLI tool for datetime arithmetic, parsing, formatting and more
32
30-day installs · #5659
32
90-day · #8484
32
365-day · #12376
728
★ GitHub stars · updated 2mo ago
Build dependencies
GitHub topics
cli
command-line
date
datetime
iana
jiff
recurrence-rule
rfc-5545
rust
strftime
strptime
time
time-zone
timezone
zone
Links
- https://github.com/BurntSushi/bttf
- GitHub: BurntSushi/bttf
- Brew formula source: Formula/b/bttf.rb
Raw metadata
{
"aliases": [],
"alternatives": [],
"build_dependencies": [
"rust"
],
"categories": [],
"caveats": null,
"conflicts_with": [],
"dependencies": [],
"deprecated": 0,
"deprecation_reason": null,
"desc": "CLI tool for datetime arithmetic, parsing, formatting and more",
"disable_reason": null,
"disabled": 0,
"enrichment_fetched_at": "2026-06-20T23:36:00+00:00",
"first_seen": "2026-06-20T23:34:18+00:00",
"full_name": "bttf",
"github_default_branch": "master",
"github_last_commit_at": "2026-05-29T03:49:51Z",
"github_readme_excerpt": "bttf\n====\nA command line tool for datetime arithmetic, parsing, formatting and more.\n\n[](https://github.com/BurntSushi/bttf/actions)\n[](https://crates.io/crates/bttf)\n\nDual-licensed under MIT or the [UNLICENSE](https://unlicense.org/).\n\n### Documentation\n\nThe [user guide] should be your first stop for understanding the high level\nconcepts that bttf deals with. Otherwise, consult `bttf --help` or\n`bttf \u003csub-command\u003e --help` for more specific details.\n\nAlternatively, there is a [comparison] between other similar tools that might\ngive you a quick sense of what bttf is like.\n\n\u003e [!TIP]\n\u003e This project was initially named Biff. It has been renamed to bttf.\n\n### Brief Examples\n\nPrint the current time:\n\n```console\n$ bttf\nSat, May 10, 2025, 8:02:04\u202fAM EDT\n```\n\n\u003e [!TIP]\n\u003e If you get output like `2025 M05 10, Mon 08:02:04` instead, that\u0027s because\n\u003e you likely don\u0027t have [locale support][locale] support configured. Enabling\n\u003e locale support requires setting `BTTF_LOCALE` in your shell environment.\n\nPrint the current time in a format of your choosing:\n\n```console\n$ bttf time fmt -f rfc3339 now\n2025-05-10T08:08:30.101066734-04:00\n\n$ bttf time fmt -f rfc9557 now\n2025-05-10T08:08:33.420946447-04:00[America/New_York]\n\n$ bttf time fmt -f \u0027%Y-%m-%d %H:%M:%S %Z\u0027 now\n2025-05-10 08:08:48 EDT\n```\n\nPrint multiple relative times in one command:\n\n```console\n$ bttf time fmt -f \u0027%c\u0027 now -1d \u0027next sat\u0027 \u0027last monday\u0027 \u00279pm last mon\u0027\nSat, May 10, 2025, 10:44:39\u202fAM EDT\nFri, May 9, 2025, 10:44:39\u202fAM EDT\nSat, May 17, 2025, 10:44:39\u202fAM EDT\nMon, May 5, 2025, 10:44:39\u202fAM EDT\nMon, May 5, 2025, 9:00:00\u202fPM EDT\n```\n\nPrint the current time in another time zone, and round it the nearest 15 minute\nincrement:\n\n```console\n$ bttf time in Asia/Bangkok now | bttf time round -i 15 -s minute\n2025-05-10T19:15:00+07:00[Asia/Bangkok]\n```\n\nAdd a duration to the current time:\n\n```console\n$ bttf ti",
"github_repo": "BurntSushi/bttf",
"github_stars": 728,
"github_topics": [
"cli",
"command-line",
"date",
"datetime",
"iana",
"jiff",
"recurrence-rule",
"rfc-5545",
"rust",
"strftime",
"strptime",
"time",
"time-zone",
"timezone",
"zone"
],
"homepage": "https://github.com/BurntSushi/bttf",
"homepage_og_description": null,
"homepage_og_image": null,
"homepage_title": null,
"installs_30d": 32,
"installs_365d": 32,
"installs_90d": 32,
"keg_only": 0,
"keg_only_reason": null,
"last_seen": "2026-06-20T23:34:18+00:00",
"license": "Unlicense OR MIT",
"llm_generated_at": null,
"llm_model": null,
"name": "bttf",
"oldnames": [],
"one_liner": null,
"optional_dependencies": [],
"rank_30d": 5659,
"rank_365d": 12376,
"rank_90d": 8484,
"raw_hash": "0edf290740d189fc",
"recommended_dependencies": [],
"revision": 0,
"ruby_source_path": "Formula/b/bttf.rb",
"tap": "homebrew/core",
"test_dependencies": [],
"uses_from_macos": [],
"version_head": "HEAD",
"version_stable": "0.1.4",
"versioned_formulae": [],
"why_use_this": null
}