title: Unable to deserialize chrono::DateTime from json
body: <p>I encounter an interesting issue. For some reason serde is unable to deserialize a <code>chrono::DateTime&lt;Utc&gt;</code> object from a string in the same format it was serialized (but it does if I save a variable with it):</p>
  
  <pre class="lang-rust prettyprint-override"><code>use chrono; // 0.4.11
  use serde_json; // 1.0.48
  
  fn main() {
      let date = chrono::Utc::now();
      println!("{}", date);
  
      let date_str = serde_json::to_string(&amp;date).unwrap();
      println!("{}", date_str);
  
      let parsed_date: chrono::DateTime&lt;chrono::Utc&gt; = serde_json::from_str(&amp;date_str).unwrap();
      println!("{}", parsed_date);
  
      assert_eq!(date, parsed_date);
  
      let date = "2020-03-28T16:29:04.644008111Z";
      let _: chrono::DateTime&lt;chrono::Utc&gt; = serde_json::from_str(&amp;date).unwrap();
  }
  </code></pre>
  
  <p>Here is the <a href="https://play.rust-lang.org/?version=stable&amp;mode=debug&amp;edition=2018&amp;gist=955c6393d4b1a0089aeb165bdc839555" rel="noreferrer">playground link</a></p>
  
  <p>Which outputs:</p>
  
  <pre class="lang-none prettyprint-override"><code>   Compiling playground v0.0.1 (/playground)
      Finished dev [unoptimized + debuginfo] target(s) in 1.01s
       Running `target/debug/playground`
  thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error("invalid type: integer `2020`, expected a formatted date and time string or a unix timestamp", line: 1, column: 4)', src/main.rs:17:44
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
  
  Standard Output
  
  2020-03-28 17:57:04.222452521 UTC
  "2020-03-28T17:57:04.222452521Z"
  2020-03-28 17:57:04.222452521 UTC
  </code></pre>
  
  <p>Why is this happening? How should I be doing it?</p>