IROX-TIME ========== A date & time library that aims for ease of use using static compile-time types based on the Proleptic Gregorian Calendar. Goals: * Provide type-safe, correct, easy conversions between [`Epoch`s](https://en.wikipedia.org/wiki/Epoch) * Provide type-safe, correct, easy conversions between the [Unix Epoch](https://en.wikipedia.org/wiki/Unix_time) and the associated [Gregorian Date]() and [Time]() Non-goals: * Handle strange edge cases like: * [Old Style Dates](https://en.wikipedia.org/wiki/Old_Style_and_New_Style_dates) and the [various 10-14 days that don't exist.](https://en.wikipedia.org/wiki/List_of_adoption_dates_of_the_Gregorian_calendar_by_country#List) * [Year Zero](https://en.wikipedia.org/wiki/Year_zero) * [Julian Leap Year Error](https://en.wikipedia.org/wiki/Julian_calendar#Leap_year_error) * Handle Time Zones and Daylight Savings Time Eventually: * Leap Seconds and UTC Proper Module Structure ------------------ * [`time`](src/mod.rs) - Contains the base `Time` struct, describing a standard `Hours/minutes/seconds` framework. * [`datetime`](src/datetime.rs) - Contains `UTCDateTime` structs, describing a `Date` with a `Time` * [`epoch`](src/epoch.rs) - Contains `Epoch`, `UnixEpoch`, `GPSEpoch`, and others, providing the datum anchor for timestamps `UnixTimestamp`, `GPSTimestamp`, etc. * [`format`](src/format/) - Date & Time Formatters & Parsers * [`iso8601`](src/format/iso8601.rs) - ISO8601 Date Formats * [`rfc3339`](src/format/rfc3339.rs) - RFC3339 Date Formats, a slight variation on ISO8601 * [`gregorian`](src/gregorian.rs) - Contains `Date` and `Month`, that describe a gregorian calendar date. Features --------- * `std` - adds 'std' support: * `UnixTimestamp::now() -> UnixTimestamp` * `UnixTimestamp::elapsed() -> Duration` * `UTCDateTime::now() ->UTCDateTime` * impls of `std::error::Error` on errors