code: func (x *Exif) DateTime() (time.Time, error) {
  	var dt time.Time
  	tag, err := x.Get(DateTimeOriginal)
  	if err != nil {
  		tag, err = x.Get(DateTime)
  		if err != nil {
  			return dt, err
  		}
  	}
  	if tag.Format() != tiff.StringVal {
  		return dt, errors.New("DateTime[Original] not in string format")
  	}
  	exifTimeLayout := "2006:01:02 15:04:05"
  	dateStr := strings.TrimRight(string(tag.Val), "\x00")
  	// TODO(bradfitz,mpl): look for timezone offset, GPS time, etc.
  	timeZone := time.Local
  	if tz, _ := x.TimeZone(); tz != nil {
  		timeZone = tz
  	}
  	return time.ParseInLocation(exifTimeLayout, dateStr, timeZone)
  }
docs: // DateTime returns the EXIF's "DateTimeOriginal" field, which
  // is the creation time of the photo. If not found, it tries
  // the "DateTime" (which is meant as the modtime) instead.
  // The error will be TagNotPresentErr if none of those tags
  // were found, or a generic error if the tag value was
  // not a string, or the error returned by time.Parse.
  //
  // If the EXIF lacks timezone information or GPS time, the returned
  // time's Location will be time.Local.