A Go library that formats time.Duration into human-readable strings like '2 weeks 18 hours 22 minutes 3 seconds'.
durafmt is a Go library that formats `time.Duration` values into human-readable strings. It transforms raw duration outputs like '354h22m3.24s' into natural language such as '2 weeks 18 hours 22 minutes 3 seconds', making time intervals easier to read and display.
Go developers working with time durations in applications like logging, monitoring, CLI tools, or any system requiring user-friendly time representations.
Developers choose durafmt for its simplicity, zero dependencies, and ability to produce clean, localized duration strings without manual parsing, enhancing user experience in Go applications.
:clock8: Better time duration formatting in Go!
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Transforms raw duration strings like '354h22m3.24s' into intuitive phrases such as '2 weeks 18 hours 22 minutes 3 seconds', making time intervals easier for end-users to grasp.
Supports parsing from both strings with ParseString() and time.Duration types with Parse(), accommodating various data sources without extra conversion code.
Provides ParseStringShort() to return only the first part of the duration, ideal for space-constrained UI elements like tooltips or summaries.
Allows limiting output parts with LimitFirstN() and defining custom units via Units{}, enabling localization and specialized formatting for international audiences.
Lacks built-in support for multiple languages; developers must manually define and manage custom units for each locale, adding setup complexity.
Parsing from strings involves error handling and conversion steps, which can introduce performance bottlenecks in high-frequency or latency-sensitive applications.
Focuses solely on formatting and does not provide functions for adding, subtracting, or comparing durations, requiring additional code for time arithmetic.