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