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