1ChangeLog for Chrono 2==================== 3 4This documents all notable changes to [Chrono](https://github.com/chronotope/chrono). 5 6Chrono obeys the principle of [Semantic Versioning](http://semver.org/), with one caveat: we may 7move previously-existing code behind a feature gate and put it behind a new feature. This new 8feature will always be placed in the `previously-default` feature, which you can use to prevent 9breakage if you use `no-default-features`. 10 11There were/are numerous minor versions before 1.0 due to the language changes. 12Versions with only mechanical changes will be omitted from the following list. 13 14## 0.4.20 (unreleased) 15 16## 0.4.19 17 18* Correct build on solaris/illumos 19 20## 0.4.18 21 22* Restore support for x86_64-fortanix-unknown-sgx 23 24## 0.4.17 25 26* Fix a name resolution error in wasm-bindgen code introduced by removing the dependency on time 27 v0.1 28 29## 0.4.16 30 31### Features 32 33* Add %Z specifier to the `FromStr`, similar to the glibc strptime 34 (does not set the offset from the timezone name) 35 36* Drop the dependency on time v0.1, which is deprecated, unless the `oldtime` 37 feature is active. This feature is active by default in v0.4.16 for backwards 38 compatibility, but will likely be removed in v0.5. Code that imports 39 `time::Duration` should be switched to import `chrono::Duration` instead to 40 avoid breakage. 41 42## 0.4.15 43 44### Fixes 45 46* Correct usage of vec in specific feature combinations (@quodlibetor) 47 48## 0.4.14 **YANKED** 49 50### Features 51 52* Add day and week iterators for `NaiveDate` (@gnzlbg & @robyoung) 53* Add a `Month` enum (@hhamana) 54* Add `locales`. All format functions can now use locales, see the documentation for the 55 `unstable-locales` feature. 56* Fix `Local.from_local_datetime` method for wasm 57 58### Improvements 59 60* Added MIN and MAX values for `NaiveTime`, `NaiveDateTime` and `DateTime<Utc>`. 61 62## 0.4.13 63 64### Features 65 66* Add `DurationRound` trait that allows rounding and truncating by `Duration` (@robyoung) 67 68### Internal Improvements 69 70* Code improvements to impl `From` for `js_sys` in wasm to reuse code (@schrieveslaach) 71 72## 0.4.12 73 74### New Methods and impls 75 76* `Duration::abs` to ensure that a duration is just a magnitude (#418 @abreis). 77 78### Compatibility improvements 79 80* impl `From` for `js_sys` in wasm (#424 @schrieveslaach) 81* Bump required version of `time` for redox support. 82 83### Bugfixes 84 85* serde modules do a better job with `Option` types (#417 @mwkroening and #429 86 @fx-kirin) 87* Use js runtime when using wasmbind to get the local offset (#412 88 @quodlibetor) 89 90### Internal Improvements 91 92* Migrate to github actions from travis-ci, make the overall CI experience more comprehensible, 93 significantly faster and more correct (#439 @quodlibetor) 94 95## 0.4.11 96 97### Improvements 98 99* Support a space or `T` in `FromStr` for `DateTime<Tz>`, meaning that e.g. 100 `dt.to_string().parse::<DateTime<Utc>>()` now correctly works on round-trip. 101 (@quodlibetor in #378) 102* Support "negative UTC" in `parse_from_rfc2822` (@quodlibetor #368 reported in 103 #102) 104* Support comparisons of DateTimes with different timezones (@dlalic in #375) 105* Many documentation improvements 106 107### Bitrot and external integration fixes 108 109* Don't use wasmbind on wasi (@coolreader18 #365) 110* Avoid deprecation warnings for `Error::description` (@AnderEnder and 111 @quodlibetor #376) 112 113### Internal improvements 114 115* Use Criterion for benchmarks (@quodlibetor) 116 117## 0.4.10 118 119### Compatibility notes 120 121* Putting some functionality behind an `alloc` feature to improve no-std 122 support (in #341) means that if you were relying on chrono with 123 `no-default-features` *and* using any of the functions that require alloc 124 support (i.e. any of the string-generating functions like `to_rfc3339`) you 125 will need to add the `alloc` feature in your Cargo.toml. 126 127### Improvements 128 129* `DateTime::parse_from_str` is more than 2x faster in some cases. (@michalsrb 130 #358) 131* Significant improvements to no-std and alloc support (This should also make 132 many format/serialization operations induce zero unnecessary allocations) 133 (@CryZe #341) 134 135### Features 136 137* Functions that were accepting `Iterator` of `Item`s (for example 138 `format_with_items`) now accept `Iterator` of `Borrow<Item>`, so one can 139 use values or references. (@michalsrb #358) 140* Add built-in support for structs with nested `Option<Datetime>` etc fields 141 (@manifest #302) 142 143### Internal/doc improvements 144 145* Use markdown footnotes on the `strftime` docs page (@qudlibetor #359) 146* Migrate from `try!` -> `?` (question mark) because it is now emitting 147 deprecation warnings and has been stable since rustc 1.13.0 148* Deny dead code 149 150## 0.4.9 151 152### Fixes 153 154* Make Datetime arithmatic adjust their offsets after discovering their new 155 timestamps (@quodlibetor #337) 156* Put wasm-bindgen related code and dependencies behind a `wasmbind` feature 157 gate. (@quodlibetor #335) 158 159## 0.4.8 160 161### Fixes 162 163* Add '0' to single-digit days in rfc2822 date format (@wyhaya #323) 164* Correctly pad DelayedFormat (@SamokhinIlya #320) 165 166### Features 167 168* Support `wasm-unknown-unknown` via wasm-bindgen (in addition to 169 emscripten/`wasm-unknown-emscripten`). (finished by @evq in #331, initial 170 work by @jjpe #287) 171 172## 0.4.7 173 174### Fixes 175 176* Disable libc default features so that CI continues to work on rust 1.13 177* Fix panic on negative inputs to timestamp_millis (@cmars #292) 178* Make `LocalResult` `Copy/Eq/Hash` 179 180### Features 181 182* Add `std::convert::From` conversions between the different timezone formats 183 (@mqudsi #271) 184* Add `timestamp_nanos` methods (@jean-airoldie #308) 185* Documentation improvements 186 187## 0.4.6 188 189### Maintenance 190 191* Doc improvements -- improve README CI verification, external links 192* winapi upgrade to 0.3 193 194## Unreleased 195 196### Features 197 198* Added `NaiveDate::from_weekday_of_month{,_opt}` for getting eg. the 2nd Friday of March 2017. 199 200## 0.4.5 201 202### Features 203 204* Added several more serde deserialization helpers (@novacrazy #258) 205* Enabled all features on the playground (@davidtwco #267) 206* Derive `Hash` on `FixedOffset` (@LuoZijun #254) 207* Improved docs (@storyfeet #261, @quodlibetor #252) 208 209## 0.4.4 210 211### Features 212 213* Added support for parsing nanoseconds without the leading dot (@emschwartz #251) 214 215## 0.4.3 216 217### Features 218 219* Added methods to DateTime/NaiveDateTime to present the stored value as a number 220 of nanoseconds since the UNIX epoch (@harkonenbade #247) 221* Added a serde serialise/deserialise module for nanosecond timestamps. (@harkonenbade #247) 222* Added "Permissive" timezone parsing which allows a numeric timezone to 223 be specified without minutes. (@quodlibetor #242) 224 225## 0.4.2 226 227### Deprecations 228 229* More strongly deprecate RustcSerialize: remove it from documentation unless 230 the feature is enabled, issue a deprecation warning if the rustc-serialize 231 feature is enabled (@quodlibetor #174) 232 233### Features 234 235* Move all uses of the system clock behind a `clock` feature, for use in 236 environments where we don't have access to the current time. (@jethrogb #236) 237* Implement subtraction of two `Date`s, `Time`s, or `DateTime`s, returning a 238 `Duration` (@tobz1000 #237) 239 240## 0.4.1 241 242### Bug Fixes 243 244* Allow parsing timestamps with subsecond precision (@jonasbb) 245* RFC2822 allows times to not include the second (@upsuper) 246 247### Features 248 249* New `timestamp_millis` method on `DateTime` and `NaiveDateTim` that returns 250 number of milliseconds since the epoch. (@quodlibetor) 251* Support exact decimal width on subsecond display for RFC3339 via a new 252 `to_rfc3339_opts` method on `DateTime` (@dekellum) 253* Use no_std-compatible num dependencies (@cuviper) 254* Add `SubsecRound` trait that allows rounding to the nearest second 255 (@dekellum) 256 257### Code Hygiene and Docs 258 259* Docs! (@alatiera @kosta @quodlibetor @kennytm) 260* Run clippy and various fixes (@quodlibetor) 261 262## 0.4.0 (2017-06-22) 263 264This was originally planned as a minor release but was pushed to a major 265release due to the compatibility concern raised. 266 267### Added 268 269- `IsoWeek` has been added for the ISO week without time zone. 270 271- The `+=` and `-=` operators against `time::Duration` are now supported for 272 `NaiveDate`, `NaiveTime` and `NaiveDateTime`. (#99) 273 274 (Note that this does not invalidate the eventual deprecation of `time::Duration`.) 275 276- `SystemTime` and `DateTime<Tz>` types can be now converted to each other via `From`. 277 Due to the obvious lack of time zone information in `SystemTime`, 278 the forward direction is limited to `DateTime<Utc>` and `DateTime<Local>` only. 279 280### Changed 281 282- Intermediate implementation modules have been flattened (#161), 283 and `UTC` has been renamed to `Utc` in accordance with the current convention (#148). 284 285 The full list of changes is as follows: 286 287 Before | After 288 ---------------------------------------- | ---------------------------- 289 `chrono::date::Date` | `chrono::Date` 290 `chrono::date::MIN` | `chrono::MIN_DATE` 291 `chrono::date::MAX` | `chrono::MAX_DATE` 292 `chrono::datetime::DateTime` | `chrono::DateTime` 293 `chrono::naive::time::NaiveTime` | `chrono::naive::NaiveTime` 294 `chrono::naive::date::NaiveDate` | `chrono::naive::NaiveDate` 295 `chrono::naive::date::MIN` | `chrono::naive::MIN_DATE` 296 `chrono::naive::date::MAX` | `chrono::naive::MAX_DATE` 297 `chrono::naive::datetime::NaiveDateTime` | `chrono::naive::NaiveDateTime` 298 `chrono::offset::utc::UTC` | `chrono::offset::Utc` 299 `chrono::offset::fixed::FixedOffset` | `chrono::offset::FixedOffset` 300 `chrono::offset::local::Local` | `chrono::offset::Local` 301 `chrono::format::parsed::Parsed` | `chrono::format::Parsed` 302 303 With an exception of `Utc`, this change does not affect any direct usage of 304 `chrono::*` or `chrono::prelude::*` types. 305 306- `Datelike::isoweekdate` is replaced by `Datelike::iso_week` which only returns the ISO week. 307 308 The original method used to return a tuple of year number, week number and day of the week, 309 but this duplicated the `Datelike::weekday` method and it had been hard to deal with 310 the raw year and week number for the ISO week date. 311 This change isolates any logic and API for the week date into a separate type. 312 313- `NaiveDateTime` and `DateTime` can now be deserialized from an integral UNIX timestamp. (#125) 314 315 This turns out to be very common input for web-related usages. 316 The existing string representation is still supported as well. 317 318- `chrono::serde` and `chrono::naive::serde` modules have been added 319 for the serialization utilities. (#125) 320 321 Currently they contain the `ts_seconds` modules that can be used to 322 serialize `NaiveDateTime` and `DateTime` values into an integral UNIX timestamp. 323 This can be combined with Serde's `[de]serialize_with` attributes 324 to fully support the (de)serialization to/from the timestamp. 325 326 For rustc-serialize, there are separate `chrono::TsSeconds` and `chrono::naive::TsSeconds` types 327 that are newtype wrappers implementing different (de)serialization logics. 328 This is a suboptimal API, however, and it is strongly recommended to migrate to Serde. 329 330### Fixed 331 332- The major version was made to fix the broken Serde dependency issues. (#146, #156, #158, #159) 333 334 The original intention to technically break the dependency was 335 to facilitate the use of Serde 1.0 at the expense of temporary breakage. 336 Whether this was appropriate or not is quite debatable, 337 but it became clear that there are several high-profile crates requiring Serde 0.9 338 and it is not feasible to force them to use Serde 1.0 anyway. 339 340 To the end, the new major release was made with some known lower-priority breaking changes. 341 0.3.1 is now yanked and any remaining 0.3 users can safely roll back to 0.3.0. 342 343- Various documentation fixes and goodies. (#92, #131, #136) 344 345## 0.3.1 (2017-05-02) 346 347### Added 348 349- `Weekday` now implements `FromStr`, `Serialize` and `Deserialize`. (#113) 350 351 The syntax is identical to `%A`, i.e. either the shortest or the longest form of English names. 352 353### Changed 354 355- Serde 1.0 is now supported. (#142) 356 357 This is technically a breaking change because Serde 0.9 and 1.0 are not compatible, 358 but this time we decided not to issue a minor version because 359 we have already seen Serde 0.8 and 0.9 compatibility problems even after 0.3.0 and 360 a new minor version turned out to be not very helpful for this kind of issues. 361 362### Fixed 363 364- Fixed a bug that the leap second can be mapped wrongly in the local time zone. 365 Only occurs when the local time zone is behind UTC. (#130) 366 367## 0.3.0 (2017-02-07) 368 369The project has moved to the [Chronotope](https://github.com/chronotope/) organization. 370 371### Added 372 373- `chrono::prelude` module has been added. All other glob imports are now discouraged. 374 375- `FixedOffset` can be added to or subtracted from any timelike types. 376 377 - `FixedOffset::local_minus_utc` and `FixedOffset::utc_minus_local` methods have been added. 378 Note that the old `Offset::local_minus_utc` method is gone; see below. 379 380- Serde support for non-self-describing formats like Bincode is added. (#89) 381 382- Added `Item::Owned{Literal,Space}` variants for owned formatting items. (#76) 383 384- Formatting items and the `Parsed` type have been slightly adjusted so that 385 they can be internally extended without breaking any compatibility. 386 387- `Weekday` is now `Hash`able. (#109) 388 389- `ParseError` now implements `Eq` as well as `PartialEq`. (#114) 390 391- More documentation improvements. (#101, #108, #112) 392 393### Changed 394 395- Chrono now only supports Rust 1.13.0 or later (previously: Rust 1.8.0 or later). 396 397- Serde 0.9 is now supported. 398 Due to the API difference, support for 0.8 or older is discontinued. (#122) 399 400- Rustc-serialize implementations are now on par with corresponding Serde implementations. 401 They both standardize on the `std::fmt::Debug` textual output. 402 403 **This is a silent breaking change (hopefully the last though).** 404 You should be prepared for the format change if you depended on rustc-serialize. 405 406- `Offset::local_minus_utc` is now `Offset::fix`, and returns `FixedOffset` instead of a duration. 407 408 This makes every time zone operation operate within a bias less than one day, 409 and vastly simplifies many logics. 410 411- `chrono::format::format` now receives `FixedOffset` instead of `time::Duration`. 412 413- The following methods and implementations have been renamed and older names have been *removed*. 414 The older names will be reused for the same methods with `std::time::Duration` in the future. 415 416 - `checked_*` → `checked_*_signed` in `Date`, `DateTime`, `NaiveDate` and `NaiveDateTime` types 417 418 - `overflowing_*` → `overflowing_*_signed` in the `NaiveTime` type 419 420 - All subtraction implementations between two time instants have been moved to 421 `signed_duration_since`, following the naming in `std::time`. 422 423### Fixed 424 425- Fixed a panic when the `Local` offset receives a leap second. (#123) 426 427### Removed 428 429- Rustc-serialize support for `Date<Tz>` types and all offset types has been dropped. 430 431 These implementations were automatically derived and never had been in a good shape. 432 Moreover there are no corresponding Serde implementations, limiting their usefulness. 433 In the future they may be revived with more complete implementations. 434 435- The following method aliases deprecated in the 0.2 branch have been removed. 436 437 - `DateTime::num_seconds_from_unix_epoch` (→ `DateTime::timestamp`) 438 - `NaiveDateTime::from_num_seconds_from_unix_epoch` (→ `NaiveDateTime::from_timestamp`) 439 - `NaiveDateTime::from_num_seconds_from_unix_epoch_opt` (→ `NaiveDateTime::from_timestamp_opt`) 440 - `NaiveDateTime::num_seconds_unix_epoch` (→ `NaiveDateTime::timestamp`) 441 442- Formatting items are no longer `Copy`, except for `chrono::format::Pad`. 443 444- `chrono::offset::add_with_leapsecond` has been removed. 445 Use a direct addition with `FixedOffset` instead. 446 447## 0.2.25 (2016-08-04) 448 449This is the last version officially supports Rust 1.12.0 or older. 450 451(0.2.24 was accidentally uploaded without a proper check for warnings in the default state, 452and replaced by 0.2.25 very shortly. Duh.) 453 454### Added 455 456- Serde 0.8 is now supported. 0.7 also remains supported. (#86) 457 458### Fixed 459 460- The deserialization implementation for rustc-serialize now properly verifies the input. 461 All serialization codes are also now thoroughly tested. (#42) 462 463## 0.2.23 (2016-08-03) 464 465### Added 466 467- The documentation was greatly improved for several types, 468 and tons of cross-references have been added. (#77, #78, #80, #82) 469 470- `DateTime::timestamp_subsec_{millis,micros,nanos}` methods have been added. (#81) 471 472### Fixed 473 474- When the system time records a leap second, 475 the nanosecond component was mistakenly reset to zero. (#84) 476 477- `Local` offset misbehaves in Windows for August and later, 478 due to the long-standing libtime bug (dates back to mid-2015). 479 Workaround has been implemented. (#85) 480 481## 0.2.22 (2016-04-22) 482 483### Fixed 484 485- `%.6f` and `%.9f` used to print only three digits when the nanosecond part is zero. (#71) 486- The documentation for `%+` has been updated to reflect the current status. (#71) 487 488## 0.2.21 (2016-03-29) 489 490### Fixed 491 492- `Fixed::LongWeekdayName` was unable to recognize `"sunday"` (whoops). (#66) 493 494## 0.2.20 (2016-03-06) 495 496### Changed 497 498- `serde` dependency has been updated to 0.7. (#63, #64) 499 500## 0.2.19 (2016-02-05) 501 502### Added 503 504- The documentation for `Date` is made clear about its ambiguity and guarantees. 505 506### Fixed 507 508- `DateTime::date` had been wrong when the local date and the UTC date is in disagreement. (#61) 509 510## 0.2.18 (2016-01-23) 511 512### Fixed 513 514- Chrono no longer pulls a superfluous `rand` dependency. (#57) 515 516## 0.2.17 (2015-11-22) 517 518### Added 519 520- Naive date and time types and `DateTime` now have a `serde` support. 521 They serialize as an ISO 8601 / RFC 3339 string just like `Debug`. (#51) 522 523## 0.2.16 (2015-09-06) 524 525### Added 526 527- Added `%.3f`, `%.6f` and `%.9f` specifier for formatting fractional seconds 528 up to 3, 6 or 9 decimal digits. This is a natural extension to the existing `%f`. 529 Note that this is (not yet) generic, no other value of precision is supported. (#45) 530 531### Changed 532 533- Forbade unsized types from implementing `Datelike` and `Timelike`. 534 This does not make a big harm as any type implementing them should be already sized 535 to be practical, but this change still can break highly generic codes. (#46) 536 537### Fixed 538 539- Fixed a broken link in the `README.md`. (#41) 540 541## 0.2.15 (2015-07-05) 542 543### Added 544 545- Padding modifiers `%_?`, `%-?` and `%0?` are implemented. 546 They are glibc extensions which seem to be reasonably widespread (e.g. Ruby). 547 548- Added `%:z` specifier and corresponding formatting items 549 which is essentially the same as `%z` but with a colon. 550 551- Added a new specifier `%.f` which precision adapts from the input. 552 This was added as a response to the UX problems in the original nanosecond specifier `%f`. 553 554### Fixed 555 556- `Numeric::Timestamp` specifier (`%s`) was ignoring the time zone offset when provided. 557 558- Improved the documentation and associated tests for `strftime`. 559 560## 0.2.14 (2015-05-15) 561 562### Fixed 563 564- `NaiveDateTime +/- Duration` or `NaiveTime +/- Duration` could have gone wrong 565 when the `Duration` to be added is negative and has a fractional second part. 566 This was caused by an underflow in the conversion from `Duration` to the parts; 567 the lack of tests for this case allowed a bug. (#37) 568 569## 0.2.13 (2015-04-29) 570 571### Added 572 573- The optional dependency on `rustc_serialize` and 574 relevant `Rustc{En,De}codable` implementations for supported types has been added. 575 This is enabled by the `rustc-serialize` Cargo feature. (#34) 576 577### Changed 578 579- `chrono::Duration` reexport is changed to that of crates.io `time` crate. 580 This enables Rust 1.0 beta compatibility. 581 582## 0.2.4 (2015-03-03) 583 584### Fixed 585 586- Clarified the meaning of `Date<Tz>` and fixed unwanted conversion problem 587 that only occurs with positive UTC offsets. (#27) 588 589## 0.2.3 (2015-02-27) 590 591### Added 592 593- `DateTime<Tz>` and `Date<Tz>` is now `Copy`/`Send` when `Tz::Offset` is `Copy`/`Send`. 594 The implementations for them were mistakenly omitted. (#25) 595 596### Fixed 597 598- `Local::from_utc_datetime` didn't set a correct offset. (#26) 599 600## 0.2.1 (2015-02-21) 601 602### Changed 603 604- `DelayedFormat` no longer conveys a redundant lifetime. 605 606## 0.2.0 (2015-02-19) 607 608### Added 609 610- `Offset` is splitted into `TimeZone` (constructor) and `Offset` (storage) types. 611 You would normally see only the former, as the latter is mostly an implementation detail. 612 Most importantly, `Local` now can be used to directly construct timezone-aware values. 613 614 Some types (currently, `UTC` and `FixedOffset`) are both `TimeZone` and `Offset`, 615 but others aren't (e.g. `Local` is not what is being stored to each `DateTime` values). 616 617- `LocalResult::map` convenience method has been added. 618 619- `TimeZone` now allows a construction of `DateTime` values from UNIX timestamp, 620 via `timestamp` and `timestamp_opt` methods. 621 622- `TimeZone` now also has a method for parsing `DateTime`, namely `datetime_from_str`. 623 624- The following methods have been added to all date and time types: 625 626 - `checked_add` 627 - `checked_sub` 628 - `format_with_items` 629 630- The following methods have been added to all timezone-aware types: 631 632 - `timezone` 633 - `with_timezone` 634 - `naive_utc` 635 - `naive_local` 636 637- `parse_from_str` method has been added to all naive types and `DateTime<FixedOffset>`. 638 639- All naive types and instances of `DateTime` with time zones `UTC`, `Local` and `FixedOffset` 640 implement the `FromStr` trait. They parse what `std::fmt::Debug` would print. 641 642- `chrono::format` has been greatly rewritten. 643 644 - The formatting syntax parser is modular now, available at `chrono::format::strftime`. 645 646 - The parser and resolution algorithm is also modular, the former is available at 647 `chrono::format::parse` while the latter is available at `chrono::format::parsed`. 648 649 - Explicit support for RFC 2822 and 3339 syntaxes is landed. 650 651 - There is a minor formatting difference with atypical values, 652 e.g. for years not between 1 BCE and 9999 CE. 653 654### Changed 655 656- Most uses of `Offset` are converted to `TimeZone`. 657 In fact, *all* user-facing code is expected to be `Offset`-free. 658 659- `[Naive]DateTime::*num_seconds_from_unix_epoch*` methods have been renamed to 660 simply `timestamp` or `from_timestamp*`. The original names have been deprecated. 661 662### Removed 663 664- `Time` has been removed. This also prompts a related set of methods in `TimeZone`. 665 666 This is in principle possible, but in practice has seen a little use 667 because it can only be meaningfully constructed via an existing `DateTime` value. 668 This made many operations to `Time` unintuitive or ambiguous, 669 so we simply let it go. 670 671 In the case that `Time` is really required, one can use a simpler `NaiveTime`. 672 `NaiveTime` and `NaiveDate` can be freely combined and splitted, 673 and `TimeZone::from_{local,utc}_datetime` can be used to convert from/to the local time. 674 675- `with_offset` method has been removed. Use `with_timezone` method instead. 676 (This is not deprecated since it is an integral part of offset reform.) 677 678## 0.1.14 (2015-01-10) 679 680### Added 681 682- Added a missing `std::fmt::String` impl for `Local`. 683 684## 0.1.13 (2015-01-10) 685 686### Changed 687 688- Most types now implement both `std::fmt::Show` and `std::fmt::String`, 689 with the former used for the stricter output and the latter used for more casual output. 690 691### Removed 692 693- `Offset::name` has been replaced by a `std::fmt::String` implementation to `Offset`. 694 695## 0.1.12 (2015-01-08) 696 697### Removed 698 699- `Duration + T` no longer works due to the updated impl reachability rules. 700 Use `T + Duration` as a workaround. 701 702## 0.1.4 (2014-12-13) 703 704### Fixed 705 706- Fixed a bug that `Date::and_*` methods with an offset that can change the date are 707 off by one day. 708 709## 0.1.3 (2014-11-28) 710 711### Added 712 713- `{Date,Time,DateTime}::with_offset` methods have been added. 714 715- `LocalResult` now implements a common set of traits. 716 717- `LocalResult::and_*` methods have been added. 718 They are useful for safely chaining `LocalResult<Date<Off>>` methods 719 to make `LocalResult<DateTime<Off>>`. 720 721### Changed 722 723- `Offset::name` now returns `SendStr`. 724 725- `{Date,Time} - Duration` overloadings are now allowed. 726 727## 0.1.2 (2014-11-24) 728 729### Added 730 731- `Duration + Date` overloading is now allowed. 732 733### Changed 734 735- Chrono no longer needs `num` dependency. 736 737## 0.1.0 (2014-11-20) 738 739The initial version that was available to `crates.io`. 740 741