title: Java 8 parse ZonedDateTime from string not containing all fields
body: <p>When I have only year (and possibly several other temporal fields) specified in a string pattern, I would like the other absent fields to be set to their lowest values. For example, prior to Java 8 my code looked like </p>
  
  <pre><code>String source = "2015";
  String pattern = "yyyy";
  DateFormat sdf = new SimpleDateFormat(pattern);
  sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
  Date date = null;
  try {
      date = sdf.parse(source);
  } catch (ParseException e) {
      e.printStackTrace();
  }
  
  SimpleDateFormat sdfGMT2 = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss z");
  sdfGMT2.setTimeZone(TimeZone.getTimeZone("GMT"));
  
  String newf = sdfGMT2.format(date);
  System.out.println(newf);
  </code></pre>
  
  <p>which returns me <code>2015.01.01 00:00:00 GMT</code></p>
  
  <p>However, in <code>java.time</code> formatter returns a <code>TemporalAccessor</code>; the code below throws exception</p>
  
  <pre><code>DateTimeFormatter fmt = DateTimeFormatter.ofPattern("YYYY");
  ZonedDateTime zonedDateTime = ZonedDateTime.parse("2008", fmt);
  </code></pre>
  
  <p>Exception:</p>
  
  <pre>
  java.time.format.DateTimeParseException: Text '2008' could not be parsed: Unable to obtain
      ZonedDateTime from TemporalAccessor: {WeekBasedYear[WeekFields[SUNDAY,1]]=2008},ISO
          of type java.time.format.Parsed
  </pre>
  
  <p>How do I achieve the same result with Java 8 time API as I did with older API?</p>