Expand description
§rstime
A zero-dependency enhanced time library for Rust, built using the standard library.
Provides date, time, datetime types with formatting, parsing, arithmetic, Unix timestamp conversion, and clock functionality.
§Features
- Zero Dependencies: Pure standard library implementation
- Date & Time Types:
Date,Time,DateTimewith validation - Duration & TimeDelta: Positive and signed duration types with arithmetic
- Custom Formatting:
{YYYY},{MM},{DD},{HH},{mm},{ss}token system - Parsing: Parse dates/times from strings with format patterns
- ISO 8601: Built-in ISO 8601 parsing and formatting
- Weekday Calculation: Zeller’s formula for accurate weekday computation
- Unix Timestamps: Convert between
DateTimeand Unix timestamps - Clock: System clock and monotonic clock for timing
- 12/24 Hour: 12-hour clock conversion with AM/PM
§Quick Start
use rstime::{Date, Time, DateTime, Duration, TimeFormat};
// Date handling
let date = Date::new(2026, 5, 10);
println!("{}", date); // 2026-05-10
println!("{}", date.weekday()); // Sunday
// Time handling
let time = Time::new(14, 5, 9, 0);
println!("{}", time); // 14:05:09
// Formatting
let dt = DateTime::new(date, time);
println!("{}", dt.format("{YYYY}年{MM}月{DD}日 {HH}:{mm}")); // 2026年05月10日 14:05
// Clock
let now = DateTime::now();
println!("Now: {}", now);§Custom Format Tokens
| Token | Description | Example |
|---|---|---|
{YYYY} | 4-digit year | 2026 |
{MM} | 2-digit month | 05 |
{DD} | 2-digit day | 10 |
{HH} | 24-hour | 14 |
{hh} | 12-hour | 02 |
{mm} | Minutes | 05 |
{ss} | Seconds | 09 |
{SSS} | Milliseconds | 037 |
{W} | Short weekday | Sun |
{WW} | Full weekday | Sunday |
{AMPM} | Uppercase AM/PM | PM |
{ampm} | Lowercase am/pm | pm |
Re-exports§
pub use clock::Clock;pub use clock::MonotonicClock;pub use clock::SystemClock;pub use date::Date;pub use date::Weekday;pub use datetime::DateTime;pub use duration::Duration;pub use duration::TimeDelta;pub use error::RstimeError;pub use error::RstimeResult;pub use format::TimeFormat;pub use parse::parse_date;pub use parse::parse_datetime;pub use parse::parse_iso8601;pub use parse::parse_time;pub use time::Time;