code: public static DateValue convert(ICalDate date, TimeZone timezone) {
  		Calendar c = Calendar.getInstance(timezone);
  		c.setTime(date);
  
  		/*
  		 * Do not create a "DateValueImpl" object if "date.hasTime() == false".
  		 * This interferes with any recurrence iterators the object is passed
  		 * into.
  		 * 
  		 * See: https://github.com/mangstadt/biweekly/issues/47
  		 */
  
  		//@formatter:off
  		return new DateTimeValueImpl(
  			c.get(Calendar.YEAR),
  			c.get(Calendar.MONTH)+1,
  			c.get(Calendar.DATE),
  			c.get(Calendar.HOUR_OF_DAY),
  			c.get(Calendar.MINUTE),
  			c.get(Calendar.SECOND)
  		);
  		//@formatter:on
  	}
docs: Converts an {@link ICalDate} object to a google-rfc-2445
  {@link DateValue} object.
  @param date the date object
  @param timezone the timezone the returned object will be in
  @return the google-rfc-2445 object