#ruby #strftime #time

no-std strftime-ruby

Ruby Time#strftime parser and formatter

2 stable releases

1.0.1 Jun 4, 2023
1.0.0 Aug 20, 2022

#140 in Date and time

Download history 181/week @ 2023-08-11 189/week @ 2023-08-18 185/week @ 2023-08-25 414/week @ 2023-09-01 186/week @ 2023-09-08 196/week @ 2023-09-15 174/week @ 2023-09-22 263/week @ 2023-09-29 190/week @ 2023-10-06 188/week @ 2023-10-13 277/week @ 2023-10-20 270/week @ 2023-10-27 188/week @ 2023-11-03 199/week @ 2023-11-10 185/week @ 2023-11-17 262/week @ 2023-11-24

854 downloads per month

MIT license

2.5K SLoC


GitHub Actions Code Coverage Discord Twitter
Crate API API trunk

strftime-ruby is a Ruby 3.1.2 compatible implementation of the Time#strftime method. The strftime routines provided by this crate are POSIX-compatible, except for intentionally ignoring the E and O modified conversion specifiers.

Formats time according to the directives in the given format string.

The directives begin with a percent (%) character. Any text not listed as a directive will be passed through to the output string.

The directive consists of a percent (%) character, zero or more flags, optional minimum field width, optional modifier and a conversion specifier as follows:



Add this to your Cargo.toml:

strftime-ruby = "1.0.1"

Crate features

All features are enabled by default.

  • std - Enables a dependency on the Rust Standard Library. Activating this feature enables implementations of std::error::Error on the error types in this crate and the strftime::io module, which depends on std::io::Write. Activating this feature also activates the alloc feature.
  • alloc - Enables a dependency on the Rust alloc crate. Activating this feature enables the strftime::bytes and stftime::string modules, which depend on alloc::vec::Vec and alloc::string::String. When the alloc feature is enabled, this crate only uses fallible allocation APIs.

Minimum Supported Rust Version

This crate requires at least Rust 1.58.0. This version can be bumped in minor releases.


strftime-ruby is licensed under the MIT License (c) Ryan Lopopolo and x-hgg-x.

This repository includes a vendored copy of strftime.c from Ruby 3.1.2, which is licensed under the Ruby license or BSD 2-clause license. See vendor/README.md for more details. These sources are not distributed on crates.io.

No runtime deps